예제 #1
0
        public async Task QueueAsync(
            string packageId,
            NuGetVersion packageVersion, CancellationToken cancellationToken = default)
        {
            // TODO: This is a hack. Use the service index instead to determine the package URL.
            var id      = packageId.ToLowerInvariant();
            var version = packageVersion.ToNormalizedString().ToLowerInvariant();

            var url = $"https://api.nuget.org/v3-flatcontainer/{id}/{version}/{id}.{version}.nupkg";

            _logger.LogInformation("Enqueueing package url {PackageUrl}", url);

            await _queue.ProcessAsync(new[] { url }, cancellationToken);
        }
예제 #2
0
        private async Task ProcessCatalogLeafsAsync(IEnumerable <CatalogLeafItem> catalogLeafItems, CancellationToken cancellationToken)
        {
            var packageUrls = catalogLeafItems.Select(ToPackageUrl);

            await _queue.ProcessAsync(packageUrls, cancellationToken);

            string ToPackageUrl(CatalogLeafItem catalogLeafItem)
            {
                // TODO: This is a hack. Use the service index instead to determine the package URL.
                var id      = catalogLeafItem.PackageId.ToLowerInvariant();
                var version = catalogLeafItem.ParsePackageVersion().ToNormalizedString().ToLowerInvariant();

                return($"https://api.nuget.org/v3-flatcontainer/{id}/{version}/{id}.{version}.nupkg");
            }
        }