public async Task ShouldCreateDownloadLinkForMultipeFiles() { /// Arrange var contentId1 = await _fixture.GetRandomContentIdAsync(".jpg", 50); var contentId2 = await _fixture.GetRandomContentIdAsync(".jpg", 50); var createDownloadLinkRequest = new ContentDownloadLinkCreateRequest { Contents = new List <ContentDownloadRequestItem> { new ContentDownloadRequestItem { ContentId = contentId1, OutputFormatId = "Original" }, new ContentDownloadRequestItem { ContentId = contentId2, OutputFormatId = "Original" } } }; /// Act var result = await _client.Contents.CreateDownloadLinkAsync(createDownloadLinkRequest); Assert.NotNull(result.DownloadUrl); using (var httpClient = new HttpClient()) using (var response = await httpClient.GetAsync(result.DownloadUrl)) { response.EnsureSuccessStatusCode(); var fileName = response.Content.Headers.ContentDisposition.FileName; Assert.EndsWith(".zip", fileName); var filePath = Path.Combine(_fixture.TempDirectory, fileName); using (var stream = await response.Content.ReadAsStreamAsync()) using (var fileStream = File.Create(filePath)) { stream.CopyTo(fileStream); /// Assert Assert.True(stream.Length > 10); } } }
private async Task <List <string> > GetContentsDownloadUrls(ContentSearchResult contentSearchResult) { var urls = new List <string>(); foreach (var content in contentSearchResult.Results) { var downloadRequest = new ContentDownloadLinkCreateRequest() { Contents = new List <ContentDownloadRequestItem> { new ContentDownloadRequestItem { ContentId = content.Id, OutputFormatId = "Original", } } }; var downloadResult = await _client.Content.CreateDownloadLinkAsync(downloadRequest).ConfigureAwait(false); urls.Add(downloadResult.DownloadUrl); } return(urls); }