76 lines
2.5 KiB
C#
76 lines
2.5 KiB
C#
using System.Linq;
|
|
using System.Text.RegularExpressions;
|
|
using AppLimit.CloudComputing.SharpBox.StorageProvider.API;
|
|
using AppLimit.CloudComputing.SharpBox.StorageProvider.GoogleDocs.Logic;
|
|
|
|
namespace AppLimit.CloudComputing.SharpBox.StorageProvider.GoogleDocs
|
|
{
|
|
internal static class GoogleDocsResourceHelper
|
|
{
|
|
public static bool IsFileEntry(ICloudFileSystemEntry entry)
|
|
{
|
|
return !(entry is ICloudDirectoryEntry);
|
|
}
|
|
|
|
public static bool IsRootName(string name)
|
|
{
|
|
return name.Equals("/") || name.Equals(GoogleDocsConstants.RootFolderId);
|
|
}
|
|
|
|
public static bool IsNoolOrRoot(ICloudFileSystemEntry dir)
|
|
{
|
|
return dir == null || ((dir is ICloudDirectoryEntry) && dir.Id.Equals(GoogleDocsConstants.RootFolderId));
|
|
}
|
|
|
|
public static void UpdateResourceByXml(IStorageProviderSession session, out ICloudFileSystemEntry resource, string xml)
|
|
{
|
|
var parsed = GoogleDocsXmlParser.ParseEntriesXml(session, xml).Single();
|
|
resource = parsed;
|
|
}
|
|
|
|
public static string GetStreamExtensionByKind(string kind)
|
|
{
|
|
switch (kind)
|
|
{
|
|
case "document":
|
|
return "docx";
|
|
case "presentation":
|
|
return "pptx";
|
|
case "spreadsheet":
|
|
return "xlsx";
|
|
case "drawing":
|
|
return "svg";
|
|
default:
|
|
return string.Empty;
|
|
}
|
|
}
|
|
|
|
public static string GetExtensionByKind(string kind)
|
|
{
|
|
switch (kind)
|
|
{
|
|
case "document":
|
|
return "gdoc";
|
|
case "presentation":
|
|
return "gslides";
|
|
case "spreadsheet":
|
|
return "gsheet";
|
|
case "drawing":
|
|
return "svg";
|
|
default:
|
|
return string.Empty;
|
|
}
|
|
}
|
|
|
|
public static bool IsResorceId(string name)
|
|
{
|
|
return Regex.IsMatch(name, GoogleDocsConstants.ResourceIdRegexPattern);
|
|
}
|
|
|
|
public static bool OfGoogleDocsKind(ICloudFileSystemEntry entry)
|
|
{
|
|
var kind = entry.GetPropertyValue(GoogleDocsConstants.KindProperty);
|
|
return kind.Equals("document") || kind.Equals("presentation") || kind.Equals("spreadsheet") || kind.Equals("drawing");
|
|
}
|
|
}
|
|
} |