/// <summary>
        /// Returns an enumerable that iterates through all versions of the files contained in one bucket in alphabetical order by file name
        /// and by reverse of date/time uploaded for versions of files with the same name.
        /// </summary>
        /// <param name="request">The <see cref="ListFileVersionRequest"/> to send.</param>
        /// <param name="cacheTTL">An absolute cache expiration time to live (TTL) relative to now.</param>
        /// <exception cref="AuthenticationException">Thrown when authentication fails.</exception>
        /// <exception cref="ApiException">Thrown when an error occurs during client operation.</exception>
        async Task <IEnumerable <FileItem> > IStorageFiles.GetEnumerableAsync
            (ListFileVersionRequest request, TimeSpan cacheTTL)
        {
            var enumerable = new FileVersionEnumerable(_client, _logger, request, cacheTTL, _cancellationToken) as IEnumerable <FileItem>;

            return(await Task.FromResult(enumerable).ConfigureAwait(false));
        }
        /// <summary>
        /// List versions of the files contained in one bucket in alphabetical order by file name
        /// and by reverse of date/time uploaded for versions of files with the same name.
        /// </summary>
        /// <param name="bucketId">The bucket id to look for file names in.</param>
        /// <exception cref="AuthenticationException">Thrown when authentication fails.</exception>
        /// <exception cref="ApiException">Thrown when an error occurs during client operation.</exception>
        async Task <IApiResults <ListFileVersionResponse> > IStorageFiles.ListVersionsAsync
            (string bucketId)
        {
            var request = new ListFileVersionRequest(bucketId);

            return(await _client.ListFileVersionsAsync(request, _cancellationToken));
        }
Exemple #3
0
        public async Task GetFileVersionEnumerable()
        {
            var request    = new ListFileVersionRequest(BucketId);
            var enumerable = await Storage.Files.GetEnumerableAsync(request);

            Assert.Equal(typeof(FileVersionEnumerable), enumerable.GetType());
            Assert.Equal(_fileSystem.AllFiles.Count(), enumerable.ToList().Count());
        }
        /// <summary>
        /// Deletes all files contained in bucket.
        /// </summary>
        /// <param name="request">The <see cref="ListFileVersionRequest"/> to send.</param>
        /// <param name="dop">The degree of parallelism. Use 0 to default to <see cref="Environment.ProcessorCount"/>.</param>
        /// <exception cref="AuthenticationException">Thrown when authentication fails.</exception>
        /// <exception cref="ApiException">Thrown when an error occurs during client operation.</exception>
        async Task <IList <DeleteFileVersionResponse> > IStorageFiles.DeleteAllAsync
            (ListFileVersionRequest request, int dop)
        {
            var response = new List <DeleteFileVersionResponse>();

            var files = await Files.GetEnumerableAsync(request);

            await files.ForEachAsync(dop, async filepath =>
            {
                var deleteRequest = new DeleteFileVersionRequest(filepath.FileId, filepath.FileName);
                var results       = await _client.DeleteFileVersionAsync(deleteRequest, _cancellationToken);
                if (results.IsSuccessStatusCode)
                {
                    _logger.LogInformation($"Successfully deleted '{filepath.FileName}' file from '{request.BucketId}' bucket id");
                    response.Add(results.Response);
                }
                else
                {
                    _logger.LogWarning($"Failed deleting '{filepath.FileName}' file with error: {results.Error.Message}");
                }
            }, _cancellationToken);

            return(response);
        }
 /// <summary>
 /// List versions of the files contained in one bucket in alphabetical order by file name
 /// and by reverse of date/time uploaded for versions of files with the same name.
 /// </summary>
 /// <param name="request">The <see cref="ListFileVersionRequest"/> to send.</param>
 /// <param name="cacheTTL">An absolute cache expiration time to live (TTL) relative to now.</param>
 /// <exception cref="AuthenticationException">Thrown when authentication fails.</exception>
 /// <exception cref="ApiException">Thrown when an error occurs during client operation.</exception>
 async Task <IApiResults <ListFileVersionResponse> > IStorageFiles.ListVersionsAsync
     (ListFileVersionRequest request, TimeSpan cacheTTL)
 {
     return(await _client.ListFileVersionsAsync(request, cacheTTL, _cancellationToken));
 }
Exemple #6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="FileVersionEnumerable"/> class.
 /// </summary>
 public FileVersionEnumerable(IApiClient client, ILogger logger, ListFileVersionRequest request, TimeSpan cacheTTL, CancellationToken cancellationToken)
     : base(client, logger, cacheTTL, cancellationToken)
 {
     _request = request;
 }