public IEnumerable <IRepository> GetRepositories(PackageOperationType packageOperationType) { //todo get repositories based on packageOperationType //currenly returns all available repositories //create package metadata provider from context using (var context = _repositoryContextService.AcquireContext()) { var projects = _extensibleProjectLocator.GetAllExtensibleProjects(); var localRepos = _projectManager.AsLocalRepositories(projects); var repos = context == SourceContext.EmptyContext ? new List <SourceRepository>() : context.Repositories ?? context.PackageSources.Select(src => _repositoryContextService.GetRepository(src)); var repositoryModelList = new List <IRepository>(); //wrap all source repository object in repository model repositoryModelList.AddRange( repos.Select( source => CreateModelRepositoryFromSourceRepository(source) )); repositoryModelList.AddRange( localRepos.Select( source => CreateModelRepositoryFromSourceRepository(source) )); return(repositoryModelList); } }
#pragma warning restore CL0002 // Use async suffix public IPackageMetadataProvider InitializeMetadataProvider() { var typeFactory = TypeFactory.Default; //todo provide more automatic way //create package metadata provider from context using (var context = _repositoryService.AcquireContext()) { if (context == SourceContext.EmptyContext) { return(null); } var localRepos = _projectManager.AsLocalRepositories(new[] { _projectProvider.GetDefaultProject() }); var repos = context.Repositories ?? context.PackageSources.Select(src => _repositoryService.GetRepository(src)); return(typeFactory.CreateInstanceWithParametersAndAutoCompletion <PackageMetadataProvider>(repos, localRepos)); } }