private static async Task InitNuGetAsyncData(WebDownloadablePackage package, IPackageSearchMetadata pkg, INugetRepository repository, NuGetUpdateResolver updateResolver, bool getReadme, bool getReleaseNotes) { bool canGetReadme = getReadme && pkg.ReadmeUrl != null; var tasks = new Task[2 + Convert.ToInt32(canGetReadme) + Convert.ToInt32(getReleaseNotes)]; int currentTask = 0; tasks[currentTask++] = Task.Run(async() => package.Published = await InitNuGetPublishedAsync(pkg, repository)); tasks[currentTask++] = Task.Run(async() => package.FileSize = await InitNuGetFileSizeAsync(updateResolver, pkg)); if (canGetReadme) { tasks[currentTask++] = Task.Run(async() => package.MarkdownReadme = await SharedHttpClient.CachedAndCompressed.GetStringAsync(pkg.ReadmeUrl)); } if (getReleaseNotes) { tasks[currentTask++] = Task.Run(async() => package.Changelog = await InitNuGetReleaseNotes(pkg, repository)); } await Task.WhenAll(tasks); }
private static async Task <long> InitNuGetFileSizeAsync(NuGetUpdateResolver resolver, IPackageSearchMetadata res) { return(await resolver.GetDownloadFileSizeAsync(res.Identity.Version, new ReleaseMetadataVerificationInfo(), CancellationToken.None)); }