Ejemplo n.º 1
0
        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;
            }
        }
Ejemplo n.º 2
0
        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;
            }
        }
Ejemplo n.º 3
0
 public Task <ListFolderResponse> ListFolderAsync(ListFolderRequest model)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 4
0
 public ListFolderResponse ListFolder(ListFolderRequest model) => ListFolderAsync(model).ConfigureAwait(false).GetAwaiter().GetResult();
Ejemplo n.º 5
0
 public ListFolderResponse ListFolder(ListFolderRequest model)
 {
     throw new NotImplementedException();
 }