public async Task <IEnumerable <IPackageSearchMetadata> > ListPackages(int max = 20) { List <Lazy <INuGetResourceProvider> > providers = new List <Lazy <INuGetResourceProvider> >(); providers.AddRange(Repository.Provider.GetCoreV3()); // Add v3 API support providers.AddRange(Repository.Provider.GetCoreV2()); // Add v2 API support PackageSource packageSource = new PackageSource(DefaultPackageSource); SourceRepository sourceRepository = new SourceRepository(packageSource, providers); var packageMetadataResource = await sourceRepository.GetResourceAsync <PackageMetadataResource>(); var prov = new V2FeedListResourceProvider(); var feed = await prov.TryCreate(sourceRepository, CancellationToken.None); var lister = (V2FeedListResource)feed.Item2; var results = await lister.ListAsync(string.Empty, true, true, false, _logger, CancellationToken.None); var enumerator = results.GetEnumeratorAsync(); var result = new List <IPackageSearchMetadata>(); while (max > 0) { await enumerator.MoveNextAsync(); if (enumerator.Current == null) { break; } result.Add(enumerator.Current); max--; } return(result); }
public static async Task <IEnumerable <PackageMetaData> > ListPackagesAsync(int max = 20) { List <Lazy <INuGetResourceProvider> > providers = new List <Lazy <INuGetResourceProvider> >(); providers.AddRange(Repository.Provider.GetCoreV3()); // Add v3 API support var defaultRepo = s_sourceRepositories.FirstOrDefault(); var packageMetadataResource = await defaultRepo.GetResourceAsync <PackageMetadataResource>(); var prov = new V2FeedListResourceProvider(); var feed = await prov.TryCreate(defaultRepo, CancellationToken.None); var lister = (V2FeedListResource)feed.Item2; var results = await lister.ListAsync(string.Empty, true, false, false, new ConsoleNuGetLogger(IoC.Get <IConsole>()), CancellationToken.None); var enumerator = results.GetEnumeratorAsync(); var result = new List <IPackageSearchMetadata>(); while (max > 0) { await enumerator.MoveNextAsync(); if (enumerator.Current == null) { break; } result.Add(enumerator.Current); max--; } return(result.Select(pmd => new PackageMetaData(pmd))); }