NuGetGallery.FunctionalTests.ODataHelper.DownloadPackageFromFeed C# (CSharp) Method

DownloadPackageFromFeed() private method

private DownloadPackageFromFeed ( string packageId, string version, string operation = "Install" ) : Task
packageId string
version string
operation string
return Task
        private async Task<string> DownloadPackageFromFeed(string packageId, string version, string operation = "Install")
        {
            string filename;
            var client = new HttpClient();
            var requestUri = UrlHelper.V2FeedRootUrl + @"Package/" + packageId + @"/" + version;

            TestOutputHelper.WriteLine("GET " + requestUri);

            var request = new HttpRequestMessage(HttpMethod.Get, requestUri);
            request.Headers.Add("user-agent", "TestAgent");
            request.Headers.Add("NuGet-Operation", operation);

            var responseMessage = await client.SendAsync(request);

            if (responseMessage.StatusCode == HttpStatusCode.OK)
            {
                try
                {
                    var contentDisposition = responseMessage.Content.Headers.ContentDisposition;
                    if (contentDisposition != null)
                    {
                        filename = contentDisposition.FileName;
                    }
                    else
                    {
                        // if file name not present set the package Id for the file name
                        filename = packageId;
                    }

                    using (var fileStream = File.Create(filename))
                    {
                        await responseMessage.Content.CopyToAsync(fileStream);
                    }
                }
                catch (Exception e)
                {
                    TestOutputHelper.WriteLine("EXCEPTION: " + e);
                    throw;
                }
            }
            else
            {
                var message = string.Format("Http StatusCode: {0}", responseMessage.StatusCode);
                TestOutputHelper.WriteLine(message);
                throw new ApplicationException(message);
            }

            return filename;
        }
    }