Пример #1
0
    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);
    }
Пример #2
0
 private static async Task <long> InitNuGetFileSizeAsync(NuGetUpdateResolver resolver, IPackageSearchMetadata res)
 {
     return(await resolver.GetDownloadFileSizeAsync(res.Identity.Version, new ReleaseMetadataVerificationInfo(), CancellationToken.None));
 }