コード例 #1
0
        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);
        }
コード例 #2
0
        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)));
        }