Ejemplo n.º 1
0
 public async Task <IEnumerable <FileWithTotal> > GetFiles(GetFilesFilter filter)
 {
     return(await QueryAsync <FileWithTotal>(Functions.GetFiles, new
     {
         _username = filter.Username,
         _page = filter.Page,
         _take = filter.Take,
         _search = filter.Search,
         _ownership_status = filter.OwnershipStatus
     }));
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Get a paginated file list.
        /// </summary>
        /// <param name="filter"></param>
        public async Task <PaginatedResult <File> > GetListAsync(GetFilesFilter filter)
        {
            var pathSB = new StringBuilder("?ordering=");

            if (filter.SortDirection.Equals(GetFilesFilter.Direction.Descending))
            {
                pathSB.Append("-");
            }

            pathSB.Append(filter.Sort);

            if (filter.OnlyRemoved)
            {
                pathSB.Append("&removed=true");
            }

            if (filter.Stored.HasValue)
            {
                pathSB.Append("&stored=").Append(filter.Stored.Value ? "true" : "false");
            }

            if (filter.Limit > 0)
            {
                pathSB.Append("&limit=").Append(filter.Limit);
            }

            if (filter.Sort.Equals(GetFilesFilter.SortProperty.datetime_uploaded) &&
                filter.FromDatetimeUploaded.HasValue)
            {
                pathSB.Append("&from=").Append(filter.FromDatetimeUploaded.Value.ToString("yyyy-MM-ddTHH:mm:ss"));
            }
            else if (filter.Sort.Equals(GetFilesFilter.SortProperty.size) &&
                     filter.FromSize > 0)
            {
                pathSB.Append("&from=").Append(filter.FromSize);
            }

            var uri = new Uri(UrlHelper.ApiFiles(), pathSB.ToString());

            using (var request = new HttpRequestMessage(HttpMethod.Get, uri))
            {
                return(await ExecuteRequestAsync <PaginatedResult <File> >(this._httpClient, request).ConfigureAwait(false));
            }
        }
Ejemplo n.º 3
0
        // получение строкового массива из имен файлов, отфильтрованных
        // делегатом.
        public static string[] GetFiles(string path, GetFilesFilter filter)
        {
            ArrayList res = new ArrayList();

            foreach (string file in Directory.GetFiles(path))
            {
                // файл включается только с разрешения метода filter
                // он у нас FilterFiles
                if (filter == null || filter(file))
                {
                    res.Add(file);
                }
            }

            // углубляемся внутрь директорий
            foreach (string dir in Directory.GetDirectories(path))
            {
                // AddRange дописывает элементы коллекции (string[])
                // в конец данной коллекции
                res.AddRange(GetFiles(dir, filter)); // рекурсия!
            }
            return((string[])res.ToArray(typeof(string)));
        }