DocSpace-client/thirdparty/AppLimit.CloudComputing.SharpBox/StorageProvider/GoogleDocs/GoogleDocsResourceHelper.cs
2020-03-13 16:40:58 +03:00

77 lines
2.6 KiB
C#

using System;
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");
}
}
}