public async ValueTask <int> GetTotalCountAsync( int maxCount, IReadOnlyCollection <IProjectContextInfo> projectContextInfos, IReadOnlyCollection <PackageSourceContextInfo> packageSources, IReadOnlyCollection <string> targetFrameworks, SearchFilter searchFilter, ItemFilter itemFilter, CancellationToken cancellationToken) { Assumes.NotNullOrEmpty(projectContextInfos); Assumes.NotNullOrEmpty(packageSources); Assumes.NotNull(searchFilter); IReadOnlyCollection <SourceRepository>?sourceRepositories = await _sharedServiceState.GetRepositoriesAsync(packageSources, cancellationToken); (IPackageFeed? mainFeed, IPackageFeed? recommenderFeed) = await CreatePackageFeedAsync(projectContextInfos, targetFrameworks, itemFilter, recommendPackages: false, sourceRepositories, cancellationToken); Assumes.NotNull(mainFeed); SourceRepository packagesFolderSourceRepository = await _packagesFolderLocalRepositoryLazy.GetValueAsync(cancellationToken); IEnumerable <SourceRepository> globalPackageFolderRepositories = await _globalPackageFolderRepositoriesLazy.GetValueAsync(cancellationToken); var metadataProvider = new MultiSourcePackageMetadataProvider( sourceRepositories, packagesFolderSourceRepository, globalPackageFolderRepositories, new VisualStudioActivityLogger()); var searchObject = new SearchObject(mainFeed, recommenderFeed, metadataProvider, packageSources, searchCache: null); return(await searchObject.GetTotalCountAsync(maxCount, searchFilter, cancellationToken)); }
public async ValueTask <IReadOnlyCollection <PackageSearchMetadataContextInfo> > GetAllPackagesAsync( IReadOnlyCollection <IProjectContextInfo> projectContextInfos, IReadOnlyCollection <PackageSourceContextInfo> packageSources, IReadOnlyCollection <string> targetFrameworks, SearchFilter searchFilter, ItemFilter itemFilter, bool isSolution, CancellationToken cancellationToken) { Assumes.NotNullOrEmpty(projectContextInfos); Assumes.NotNullOrEmpty(packageSources); Assumes.NotNull(searchFilter); bool recommendPackages = false; IReadOnlyCollection <SourceRepository> sourceRepositories = await _sharedServiceState.GetRepositoriesAsync(packageSources, cancellationToken); (IPackageFeed? mainFeed, IPackageFeed? recommenderFeed)packageFeeds = await CreatePackageFeedAsync( projectContextInfos, targetFrameworks, itemFilter, isSolution, recommendPackages, sourceRepositories, cancellationToken); Assumes.NotNull(packageFeeds.mainFeed); SourceRepository packagesFolderSourceRepository = await _packagesFolderLocalRepositoryLazy.GetValueAsync(cancellationToken); IEnumerable <SourceRepository> globalPackageFolderRepositories = await GetAllPackageFoldersAsync(projectContextInfos, cancellationToken); var metadataProvider = new MultiSourcePackageMetadataProvider( sourceRepositories, packagesFolderSourceRepository, globalPackageFolderRepositories, new VisualStudioActivityLogger()); var searchObject = new SearchObject(packageFeeds.mainFeed, packageFeeds.recommenderFeed, metadataProvider, packageSources, PackageSearchMetadataMemoryCache); return(await searchObject.GetAllPackagesAsync(searchFilter, cancellationToken)); }