예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }