public async Task ShouldUploadAndImportFiles() { // Arrange const int desiredUploadFiles = 10; var timeout = TimeSpan.FromMinutes(2); var transferName = nameof(ShouldUploadAndImportFiles) + "-" + new Random().Next(1000, 9999); var filesInDirectory = Directory.GetFiles(_fixture.ExampleFilesBasePath, "*").ToList(); var numberOfFilesInDirectory = filesInDirectory.Count; var numberOfUploadFiles = Math.Min(desiredUploadFiles, numberOfFilesInDirectory); var randomNumber = new Random().Next(0, numberOfFilesInDirectory - numberOfUploadFiles); var importFilePaths = filesInDirectory .Skip(randomNumber) .Take(numberOfUploadFiles) .Select(fn => new FileLocations(fn, $"{Path.GetFileNameWithoutExtension(fn)}_1{Path.GetExtension(fn)}")) .ToList(); // Act var uploadOptions = new UploadOptions { ConcurrentUploads = 4, ChunkSize = 20 * 1024, SuccessDelegate = Console.WriteLine, ErrorDelegate = Console.WriteLine }; var createTransferResult = await _client.Transfer.UploadFilesAsync(transferName, importFilePaths, uploadOptions).ConfigureAwait(false); var importRequest = new ImportTransferRequest { ContentPermissionSetIds = new List <string>(), Metadata = null, LayerSchemaIds = new List <string>() }; await _client.Transfer.ImportAndWaitForCompletionAsync(createTransferResult.Transfer, importRequest, timeout).ConfigureAwait(false); // Assert var result = await _client.Transfer.SearchFilesByTransferIdAsync(createTransferResult.Transfer.Id).ConfigureAwait(false); var contentIds = result.Results.Select(r => r.ContentId); Assert.Equal(importFilePaths.Count(), contentIds.Count()); }
/// <summary>Transfers the uploaded files and waits for its completions.</summary> /// <param name="transfer">The transfer.</param> /// <param name="createRequest">The create request.</param> /// <param name="timeout">The timeout to wait for completion.</param> /// <param name="cancellationToken">The cancellcation token.</param> /// <returns>The task.</returns> public async Task ImportAndWaitForCompletionAsync(Transfer transfer, ImportTransferRequest createRequest, TimeSpan?timeout = null, CancellationToken cancellationToken = default(CancellationToken)) { var importedTransfer = await ImportTransferAsync(transfer.Id, createRequest, cancellationToken).ConfigureAwait(false); await _businessProcessClient.WaitForCompletionAsync(importedTransfer.BusinessProcessId, timeout, cancellationToken).ConfigureAwait(false); }
public async Task ShouldGetShareOutputByContentIdAndSize() { // Arrange transfer var timeout = TimeSpan.FromMinutes(2); var transferName = nameof(ShouldGetShareOutputByContentIdAndSize) + "-" + new Random().Next(1000, 9999); var filesInDirectory = Directory.GetFiles(_fixture.ExampleFilesBasePath, "0033_aeVA-j1y2BY.jpg").ToList(); var importFilePaths = filesInDirectory.Select(fn => new FileLocations(fn, $"{Path.GetFileNameWithoutExtension(fn)}_1{Path.GetExtension(fn)}")).ToList(); // Act var uploadOptions = new UploadOptions { SuccessDelegate = Console.WriteLine, ErrorDelegate = Console.WriteLine }; var createTransferResult = await _client.Transfer.UploadFilesAsync(transferName, importFilePaths, uploadOptions).ConfigureAwait(false); var importRequest = new ImportTransferRequest { ContentPermissionSetIds = new List <string>(), Metadata = null, LayerSchemaIds = new List <string>() }; await _client.Transfer.ImportAndWaitForCompletionAsync(createTransferResult.Transfer, importRequest, timeout).ConfigureAwait(false); // Assert var transferResult = await _client.Transfer.SearchFilesByTransferIdAsync(createTransferResult.Transfer.Id).ConfigureAwait(false); var contentIds = transferResult.Results.Select(r => r.ContentId).ToList(); Assert.Equal(importFilePaths.Count, contentIds.Count); // Arrange get share var contentId = contentIds.First(); var outputFormatIds = new List <string> { "Original", "Preview" }; var shareContentItems = new List <ShareContent> { new ShareContent { ContentId = contentId, OutputFormatIds = outputFormatIds }, }; var request = new ShareEmbedCreateRequest { Contents = shareContentItems, Description = "Description of Embed share", ExpirationDate = new DateTime(2020, 12, 31), Name = "Embed share" }; var createResult = await _client.Share.CreateAsync(request).ConfigureAwait(false); var embedDetail = await _client.Share.GetAsync(createResult.ShareId).ConfigureAwait(false); var shareOutput = (ShareOutputEmbed)embedDetail.ContentSelections.Single().Outputs.First(); // Act using (var result = await _client.Share.DownloadAsync(shareOutput.Token, 10, 10).ConfigureAwait(false)) { // Assert Assert.NotNull(result); } }