public static IEntry ToFolder(this YadFolderInfoRequestData data, YadItemInfoRequestData itemInfo, YadResourceStatsRequestData resStats, string path, string publicBaseUrl) { var fi = data.Resources; var res = new Folder(resStats?.Size ?? itemInfo?.Meta?.Size ?? 0, path) { IsChildsLoaded = true }; if (!string.IsNullOrEmpty(itemInfo?.Meta?.UrlShort)) { res.PublicLinks.Add(new PublicLinkInfo("short", itemInfo.Meta.UrlShort)); } res.Files.AddRange(fi .Where(it => it.Type == "file") .Select(f => f.ToFile(publicBaseUrl)) .ToGroupedFiles() ); foreach (var it in fi.Where(it => it.Type == "dir")) { res.Folders.Add(it.ToFolder()); } return(res); }
public static File ToFile(this YadItemInfoRequestData data) { var path = data.Path.Remove(0, 5); // remove "/disk" var res = new File(path, data.Meta.Size) { CreationTimeUtc = UnixTimeStampToDateTime(data.Ctime, DateTime.MinValue), LastAccessTimeUtc = UnixTimeStampToDateTime(data.Utime, DateTime.MinValue), LastWriteTimeUtc = UnixTimeStampToDateTime(data.Mtime, DateTime.MinValue) }; return(res); }
public static File ToFile(this YadItemInfoRequestData data, string publicBaseUrl) { var path = data.Path.Remove(0, 5); // remove "/disk" var res = new File(path, data.Meta.Size) { CreationTimeUtc = UnixTimeStampToDateTime(data.Ctime, DateTime.MinValue), LastAccessTimeUtc = UnixTimeStampToDateTime(data.Utime, DateTime.MinValue), LastWriteTimeUtc = UnixTimeStampToDateTime(data.Mtime, DateTime.MinValue), //PublicLink = data.Meta.UrlShort.StartsWith(publicBaseUrl) // ? data.Meta.UrlShort.Remove(0, publicBaseUrl.Length) // : data.Meta.UrlShort }; if (!string.IsNullOrEmpty(data.Meta.UrlShort)) { res.PublicLinks.Add(new PublicLinkInfo("short", data.Meta.UrlShort)); } return(res); }