예제 #1
0
        public ResultData<ShareListResult> ListShare(FileShareDetailsType? additional = null, int offset = 0, int limit = 0, FileSortType sortBy = FileSortType.Name, ListSortDirection sortDirection = ListSortDirection.Ascending, bool onlyWritable = false)
        {
            var additionalParams = new[] {
                new QueryStringParameter("additional", additional),
                new QueryStringParameter("offset", offset),
                new QueryStringParameter("limit", limit),
                new QueryStringParameter("sort_by", sortBy),
                new QueryStringParameter("sort_direction", sortDirection),
                new QueryStringParameter("onlywritable", onlyWritable)
            };

            return GetData<ShareListResult>(new SynologyRequestParameters
            {
                Additional = additionalParams
            });
        }
예제 #2
0
        public ResultData<FileListResult> List(string folderPath, string pattern = null, FileType fileType = FileType.All, string gotoPath = null, FileDetailsType? additional = null, int offset = 0, int limit = 0, FileSortType sortBy = FileSortType.Name, ListSortDirection sortDirection = ListSortDirection.Ascending)
        {
            var additionalParams = new[] {
                new QueryStringParameter("additional", additional),
                new QueryStringParameter("folder_path", folderPath),
                new QueryStringParameter("offset", offset),
                new QueryStringParameter("pattern", pattern),
                new QueryStringParameter("filetype", fileType),
                new QueryStringParameter("goto_path", gotoPath),
                new QueryStringParameter("limit", limit),
                new QueryStringParameter("sort_by", sortBy),
                new QueryStringParameter("sort_direction", sortDirection)
            };

            return GetData<FileListResult>(new SynologyRequestParameters
            {
                Additional = additionalParams
            });
        }
예제 #3
0
        public async Task <ResultData <ISearchListResult> > ListAsync(string taskId, int offset = 0, int limit = 0, FileSortType sortBy = FileSortType.Name, ListSortDirection sortDirection = ListSortDirection.Ascending, string pattern = null, FileType fileType = FileType.All, FileDetailsType?additional = null)
        {
            var additionalParams = new[]
            {
                new QueryStringParameter("additional", additional),
                new QueryStringParameter("taskid", taskId),
                new QueryStringParameter("pattern", pattern),
                new QueryStringParameter("offset", offset),
                new QueryStringParameter("filetype", fileType),
                new QueryStringParameter("limit", limit),
                new QueryStringParameter("sort_by", sortBy),
                new QueryStringParameter("sort_direction", sortDirection)
            };

            return(ResultData <ISearchListResult> .From(await this.GetDataAsync <SearchListResult>(new SynologyRequestParameters(this)
            {
                Additional = additionalParams
            })));
        }
예제 #4
0
        public ResultData <FileListResult> List(string folderPath, string pattern = null, FileType fileType = FileType.All, string gotoPath = null, FileDetailsType?additional = null, int offset = 0, int limit = 0, FileSortType sortBy = FileSortType.Name, ListSortDirection sortDirection = ListSortDirection.Ascending)
        {
            var additionalParams = new[] {
                new QueryStringParameter("additional", additional),
                new QueryStringParameter("folder_path", folderPath),
                new QueryStringParameter("offset", offset),
                new QueryStringParameter("pattern", pattern),
                new QueryStringParameter("filetype", fileType),
                new QueryStringParameter("goto_path", gotoPath),
                new QueryStringParameter("limit", limit),
                new QueryStringParameter("sort_by", sortBy),
                new QueryStringParameter("sort_direction", sortDirection)
            };

            return(GetData <FileListResult>(new SynologyRequestParameters
            {
                Additional = additionalParams
            }));
        }
예제 #5
0
        public ResultData <ShareListResult> ListShare(FileShareDetailsType?additional = null, int offset = 0, int limit = 0, FileSortType sortBy = FileSortType.Name, ListSortDirection sortDirection = ListSortDirection.Ascending, bool onlyWritable = false)
        {
            var additionalParams = new[] {
                new QueryStringParameter("additional", additional),
                new QueryStringParameter("offset", offset),
                new QueryStringParameter("limit", limit),
                new QueryStringParameter("sort_by", sortBy),
                new QueryStringParameter("sort_direction", sortDirection),
                new QueryStringParameter("onlywritable", onlyWritable)
            };

            return(GetData <ShareListResult>(new SynologyRequestParameters
            {
                Additional = additionalParams
            }));
        }
예제 #6
0
파일: Log.cs 프로젝트: ewin66/Monitor
 public MyFileSorter(FileSortType sortType)
 {
     mSortType = sortType;
 }
예제 #7
0
        //GET /folders/
        public static List <FtpItem> ListFolderWithConstraints(Session session, string path, int entriesPerPage = 1000, int pageNumber = 1, FileSortType sortType = FileSortType.None, string searchText = "")
        {
            if (session == null)
            {
                throw new ArgumentException("Session cannot be null, please login to get a valid session object.");
            }

            path = path.TrimStart('/');
            string basePath      = Protocol + session.Domain;
            var    operationPath = "/api/rest/v1/folders/" + session.Username + "/" + path;

            operationPath = operationPath.TrimEnd('/');
            var headerParams = new Dictionary <String, String>();
            var queryParams  = new Dictionary <String, object>();
            var postParams   = new Dictionary <String, object>();

            //var operationPath = "/api/rest/v1/folders/testaq/Testtt?&per_page=1";
            //var operationPath = "/api/rest/v1/folders/testaq/Testtt?&sort_by[modified_at_datetime]=desc";
            //var operationPath = "/api/rest/v1/folders/testaq/Testtt?&search=201606030";

            operationPath += "?&per_page=" + entriesPerPage + "&page=" + pageNumber;
            if (sortType == FileSortType.SortByPathAsc)
            {
                operationPath += "&sort_by[path] = asc";
            }
            else if (sortType == FileSortType.SortByPathDesc)
            {
                operationPath += "&sort_by[path] = desc";
            }
            else if (sortType == FileSortType.SortBySizeAsc)
            {
                operationPath += "&sort_by[size] = asc";
            }
            else if (sortType == FileSortType.SortBySizeDesc)
            {
                operationPath += "&sort_by[size] = desc";
            }
            else if (sortType == FileSortType.SortByTimeModifiedAsc)
            {
                operationPath += "&sort_by[modified_at_datetime] = asc";
            }
            else if (sortType == FileSortType.SortByTimeModifiedDesc)
            {
                operationPath += "&sort_by[modified_at_datetime] = desc";
            }

            if (!string.IsNullOrWhiteSpace(searchText))
            {
                operationPath += "&search=" + searchText;
            }

            try
            {
                string response = Invoke(basePath, operationPath, "GET", queryParams, postParams, headerParams, sessionCookie: session.Cookie);
                if (response != null)
                {
                    var items = (List <FtpItem>)Deserialize(response, typeof(List <FtpItem>));
                    return(items);
                }
            }
            catch (BrickFtpException ex)
            {
                if (ex.ErrorCode == 404)
                {
                    return(new List <FtpItem>());
                }
                throw;
            }
            return(new List <FtpItem>());
        }