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);
                        }
                }
        }
Example #2
0
        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);
        }