DocSpace-buildtools/thirdparty/AppLimit.CloudComputing.SharpBox/StorageProvider/SkyDrive/SkyDriveHelpers.cs

63 lines
2.3 KiB
C#
Raw Normal View History

2020-04-23 09:38:50 +00:00
using AppLimit.CloudComputing.SharpBox.StorageProvider.BaseObjects;
2020-03-13 13:40:58 +00:00
namespace AppLimit.CloudComputing.SharpBox.StorageProvider.SkyDrive
{
internal static class SkyDriveHelpers
{
public static bool HasResourceID(string nameOrID)
{
return GetResourceID(nameOrID) != string.Empty;
}
public static string GetResourceID(string nameOrID)
{
if (string.IsNullOrEmpty(nameOrID))
return string.Empty;
var index = nameOrID.LastIndexOf('/');
if (index != -1 && index != nameOrID.Length)
{
nameOrID = nameOrID.Substring(index + 1);
}
return SkyDriveConstants.ResourceIDRegex.IsMatch(nameOrID) ? nameOrID : string.Empty;
}
public static bool HasParentID(string nameOrID)
{
return GetParentID(nameOrID) != string.Empty;
}
public static string GetParentID(string nameOrID)
{
if (string.IsNullOrEmpty(nameOrID))
return string.Empty;
var index = nameOrID.LastIndexOf('/');
if (index != -1 && index != nameOrID.Length)
{
nameOrID = nameOrID.Remove(index);
}
return GetResourceID(nameOrID);
}
public static bool IsFolderID(string id)
{
return id.StartsWith("folder") || id.StartsWith("album") || id == string.Empty; //empty if root folder with id like "/"
}
public static void CopyProperties(ICloudFileSystemEntry src, ICloudFileSystemEntry dest)
{
if (!(dest is BaseFileEntry) || !(src is BaseFileEntry)) return;
var destBase = dest as BaseFileEntry;
var srcBase = src as BaseFileEntry;
destBase.Name = srcBase.Name;
destBase.Id = srcBase.Id;
destBase[SkyDriveConstants.InnerIDKey] = srcBase[SkyDriveConstants.InnerIDKey];
destBase.Modified = srcBase.Modified;
destBase.Length = srcBase.Length;
destBase[SkyDriveConstants.UploadLocationKey] = srcBase[SkyDriveConstants.UploadLocationKey];
destBase.ParentID = srcBase.ParentID;
}
}
}