public async Task <ListFolderResponse> ListFolderAsync(ListFolderRequest model) { try { var queryBuilder = new QueryBuilder(); if (!String.IsNullOrEmpty(model.Path)) { queryBuilder.Add("path", model.Path); } if (!String.IsNullOrEmpty(model.ContinuationToken)) { queryBuilder.Add("continuationToken", model.ContinuationToken); } var request = new HttpRequestMessage() { Method = HttpMethod.Get, RequestUri = new Uri(BASE_ADDRESS + "/" + API_VERSION + "/listFolder" + queryBuilder.ToQueryString()), }; var result = await client.SendAsync(request); if (result.StatusCode == HttpStatusCode.Unauthorized) { return(new ListFolderResponse { Success = false, Errors = new List <string> { "Unauthorized. Please check your API Key and API Secret." } }); } var jsonResponse = await result.Content.ReadAsStringAsync(); var response = JsonConvert.DeserializeObject <ListFolderResponse>(jsonResponse); return(response); } catch (Exception e) { var ex = new Image4ioException("There is an error while listing folder", e); throw ex; } }
public IEnumerable <FileEntry> ListFolder(string path) { var listFolderRequest = new ListFolderRequest(path, true); var listFolderResponse = PerformRequest <ListFolderRequest, ListFolderResponse>(listFolderRequest, "2/files/list_folder").GetAwaiter().GetResult(); if (listFolderResponse.Entries != null) { foreach (var entry in listFolderResponse.Entries) { yield return(entry); } } var hasMore = listFolderResponse.HasMore; var cursor = listFolderResponse.Cursor; var counter = 0; while (hasMore) { counter++; if (counter > 1000) { throw new Exception("List folder request overflow!"); } var continueRequest = new ListFolderContinueRequest(cursor); var continueResponse = PerformRequest <ListFolderContinueRequest, ListFolderContinueResponse>(continueRequest, "2/files/list_folder/continue").GetAwaiter().GetResult(); if (continueResponse.Entries != null) { foreach (var entry in continueResponse.Entries) { yield return(entry); } } hasMore = continueResponse.HasMore; cursor = continueResponse.Cursor; } }
public Task <ListFolderResponse> ListFolderAsync(ListFolderRequest model) { throw new NotImplementedException(); }
public ListFolderResponse ListFolder(ListFolderRequest model) => ListFolderAsync(model).ConfigureAwait(false).GetAwaiter().GetResult();
public ListFolderResponse ListFolder(ListFolderRequest model) { throw new NotImplementedException(); }