Beispiel #1
0
        public async Task <IEnumerable <UploadData> > List(UploadQuery query)
        {
            if (query.Page < 1)
            {
                query.Page = 1;
            }
            if (query.PageSize < 1)
            {
                query.PageSize = 1;
            }
            if (query.PageSize > 20)
            {
                query.PageSize = 20;
            }

            return(await _dbContext.UploadResults
                   .Where(t => query.Status == null || query.Status == t.Status)
                   .OrderBy(t => t.SubmissionTime)
                   .Select(uploadResult => new UploadData
            {
                Status = uploadResult.Status,
                FailureCount = uploadResult.ReadingsFailed,
                SuccessCount = uploadResult.ReadingsStored,
                UploadId = uploadResult.UploadResultId
            })
                   .Skip((query.Page - 1) * query.PageSize)
                   .Take(query.PageSize)
                   .ToListAsync());
        }
Beispiel #2
0
        /// <summary>
        /// Uploads a file with the data specified in query parameter
        /// </summary>
        /// <param name="query">Upload query information to upload a file</param>
        /// <returns>Task representing the upload</returns>
        public async Task <SaveMediaResponse> UploadFileAsync(UploadQuery query)
        {
            var uploadRequest = await RequestUploadInformationAsync(new RequestUploadQuery { Filename = query.Filepath }).ConfigureAwait(false);

            uint chunkNumber = 0;

            using (var file = File.Open(query.Filepath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite | FileShare.Delete))
            {
                int  bytesRead      = 0;
                var  buffer         = new byte[CHUNK_SIZE];
                long numberOfChunks = (file.Length + CHUNK_SIZE - 1) / CHUNK_SIZE;

                while ((bytesRead = file.Read(buffer, 0, buffer.Length)) > 0)
                {
                    ++chunkNumber;
                    await UploadPartAsync(Path.GetFileName(query.Filepath), buffer, bytesRead, chunkNumber, uploadRequest, (uint)numberOfChunks).ConfigureAwait(false);
                }
            }

            var finalizeResponse = await FinalizeUploadAsync(uploadRequest, chunkNumber).ConfigureAwait(false);

            if (await HasFinishedSuccessfullyAsync(finalizeResponse).ConfigureAwait(false))
            {
                return(await SaveMediaAsync(new SaveMediaQuery
                {
                    Filename = query.Filepath,
                    BrandId = query.BrandId,
                    ImportId = finalizeResponse.ImportId,
                    MediaId = query.MediaId,
                    Tags = query.Tags
                }).ConfigureAwait(false));
            }
            else
            {
                throw new BynderUploadException("Converter did not finished. Upload not completed");
            }
        }
 /// <summary>
 /// Check <see cref="IAssetService"/> for more information
 /// </summary>
 /// <param name="query">Check <see cref="IAssetService"/> for more information</param>
 /// <returns>Check <see cref="IAssetService"/> for more information</returns>
 public async Task UploadFileAsync(UploadQuery query)
 {
     await _uploader.UploadFileAsync(query).ConfigureAwait(false);
 }
Beispiel #4
0
 /// <summary>
 /// Check <see cref="IAssetBankManager"/> for more information
 /// </summary>
 /// <param name="query">Check <see cref="IAssetBankManager"/> for more information</param>
 /// <returns>Check <see cref="IAssetBankManager"/> for more information</returns>
 public Task UploadFileAsync(UploadQuery query)
 {
     return(_uploader.UploadFile(query));
 }
 public async Task <IActionResult> Upload([FromQuery] UploadQuery query)
 {
     return(Ok(await appService.InsertBulkAsync(query.GetStreamReader())));
 }
Beispiel #6
0
 /// <summary>
 /// Check <see cref="IAssetService"/> for more information
 /// </summary>
 /// <param name="query">Check <see cref="IAssetService"/> for more information</param>
 /// <returns>Check <see cref="IAssetService"/> for more information</returns>
 public async Task <SaveMediaResponse> UploadFileAsync(UploadQuery query)
 {
     return(await _uploader.UploadFileAsync(query).ConfigureAwait(false));
 }