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); } }
public void Execute(PackageOperationType operationType, IPackageDetails packageDetails, IRepository sourceRepository = null, bool allowedPrerelease = false) { Argument.IsNotNull(() => packageDetails); using (_pleaseWaitService.WaitingScope()) { using (_packageOperationContextService.UseOperationContext(operationType, packageDetails)) { _packageOperationContextService.CurrentContext.Repository = sourceRepository; switch (operationType) { case PackageOperationType.Uninstall: _packageOperationService.UninstallPackage(packageDetails); break; case PackageOperationType.Install: _packageOperationService.InstallPackage(packageDetails, allowedPrerelease); break; case PackageOperationType.Update: _packageOperationService.UpdatePackages(packageDetails, allowedPrerelease); break; } } } packageDetails.IsInstalled = null; }
private RepositoryCategory CreateRepositoryCategory(PackageOperationType packageOperationType) { var repoCategory = new RepositoryCategory(); switch (packageOperationType) { case PackageOperationType.Install: repoCategory.Name = RepositoryCategoryName.Online; break; case PackageOperationType.Uninstall: repoCategory.Name = RepositoryCategoryName.Installed; break; case PackageOperationType.Update: repoCategory.Name = RepositoryCategoryName.Update; break; } foreach (var repository in _repositoryService.GetRepositories(packageOperationType)) { repoCategory.Repositories.Add(repository); } return(repoCategory); }
internal PackageOperationBatchEventArgs(PackageOperationType operationType, params IPackageDetails[] packages) { Argument.IsNotNullOrEmptyArray(() => packages); Packages = packages; OperationType = operationType; }
public IEnumerable <IRepository> GetRepositories(PackageOperationType packageOperationType) { var result = new List <IRepository>(); switch (packageOperationType) { case PackageOperationType.Uninstall: result.Add(LocalRepository); break; case PackageOperationType.Install: result.Add(GetSourceAggregateRepository()); var remoteRepositories = GetSourceRepositories(); result.AddRange(remoteRepositories); break; case PackageOperationType.Update: result.Add(GetUpdateAggeregateRepository()); var updateRepositories = GetUpdateRepositories(); result.AddRange(updateRepositories); break; } return(result); }
public IDisposable UseOperationContext(PackageOperationType operationType, params IPackageDetails[] packages) { var context = _typeFactory.CreateInstance<TemporaryFileSystemContext>(); return new DisposableToken<PackageOperationContext>(new PackageOperationContext {OperationType = operationType, Packages = packages, FileSystemContext = context}, token => ApplyOperationContext(token.Instance), token => CloseCurrentOperationContext(token.Instance)); }
private RepositoryCategory CreateRepositoryCategory(PackageOperationType packageOperationType) { var repoCategory = new RepositoryCategory(); switch (packageOperationType) { case PackageOperationType.Install: repoCategory.Name = RepositoryCategoryName.Online; break; case PackageOperationType.Uninstall: repoCategory.Name = RepositoryCategoryName.Installed; break; case PackageOperationType.Update: repoCategory.Name = RepositoryCategoryName.Update; break; } foreach (var repository in _repositoryService.GetRepositories(packageOperationType)) { repoCategory.Repositories.Add(repository); } return repoCategory; }
public IEnumerable<IRepository> GetRepositories(PackageOperationType packageOperationType) { var packageSources = GetPackageSources(); var result = new List<IRepository>(); switch (packageOperationType) { case PackageOperationType.Uninstall: result.Add(LocalRepository); break; case PackageOperationType.Install: result.Add(GetSourceAggregateRepository()); var remoteRepositories = GetSourceRepositories(); result.AddRange(remoteRepositories); break; case PackageOperationType.Update: result.Add(GetUpdateAggeregateRepository()); var updateRepositories = GetUpdateRepositories(); result.AddRange(updateRepositories); break; } return result; }
public void NotifyOperationFinished(string installPath, PackageOperationType operationType, IPackageDetails packageDetails) { Argument.IsNotNull(() => packageDetails); //UnsubscribeFromDownloadProgress(packageDetails); OperationFinished.SafeInvoke(this, new PackageOperationEventArgs(packageDetails, installPath, operationType)); }
public void NotifyOperationStarting(string installPath, PackageOperationType operationType, IPackageDetails packageDetails) { Argument.IsNotNull(() => packageDetails); //SubscribeToDownloadProgress(packageDetails); OperationStarting.SafeInvoke(this, new PackageOperationEventArgs(packageDetails, installPath, operationType)); }
internal PackageOperationEventArgs(IPackageDetails packageDetails, string installPath, PackageOperationType packageOperationType) { Argument.IsNotNull(() => packageDetails); PackageDetails = packageDetails; InstallPath = installPath; PackageOperationType = packageOperationType; }
public IDisposable UseOperationContext(PackageOperationType operationType, params IPackageDetails[] packages) { var context = _typeFactory.CreateInstance <TemporaryFileSystemContext>(); return(new DisposableToken <PackageOperationContext>(new PackageOperationContext { OperationType = operationType, Packages = packages, FileSystemContext = context }, token => ApplyOperationContext(token.Instance), token => CloseCurrentOperationContext(token.Instance))); }
public void ShowPackagesBatch(IEnumerable <IPackageDetails> packageDetails, PackageOperationType operationType) { var packagesBatch = new PackagesBatch { OperationType = PackageOperationType.Update }; packagesBatch.PackageList.AddRange(packageDetails); _dispatcherService.Invoke(() => _uiVisualizerService.ShowDialogAsync <PackageBatchViewModel>(packagesBatch), true); }
public void ShowPackagesBatch(IEnumerable<IPackageDetails> packageDetails, PackageOperationType operationType) { var packagesBatch = new PackagesBatch { OperationType = PackageOperationType.Update }; ((ICollection<IPackageDetails>)packagesBatch.PackageList).AddRange(packageDetails); _dispatcherService.Invoke(() => _uiVisualizerService.ShowDialogAsync<PackageBatchViewModel>(packagesBatch), true); }
public static IPackageDetails Create(PackageOperationType operationType, IPackageSearchMetadata versionMetadata, PackageIdentity packageIdentity, bool?isLastVersion) { var packageDetails = new PackageDetails(versionMetadata, packageIdentity, isLastVersion ?? false); if (operationType != PackageOperationType.Install) { packageDetails.IsInstalled = true; } return(packageDetails); }
public bool IsRefreshRequired(PackageOperationType operationType) { switch (operationType) { case PackageOperationType.Uninstall: return(true); case PackageOperationType.Install: return(false); case PackageOperationType.Update: return(true); } return(false); }
private IRepository CreateSerialisableRepository(string name, PackageOperationType operationType, Func <IPackageRepository> packageRepositoryFactory, int id) { Argument.IsNotNullOrEmpty(() => name); Argument.IsNotNull(() => packageRepositoryFactory); var repository = new Repository { Id = id, Name = name, OperationType = operationType }; _idTupleDictionary[id] = new Tuple <IRepository, IPackageRepository>(repository, packageRepositoryFactory()); return(repository); }
private IRepository CreateSerialisableRepository(string name, PackageOperationType operationType, Func<IPackageRepository> packageRepositoryFactory, int id) { Argument.IsNotNullOrEmpty(() => name); Argument.IsNotNull(() => packageRepositoryFactory); var repository = new Repository { Id = id, Name = name, OperationType = operationType }; _idTupleDictionary[id] = new Tuple<IRepository, IPackageRepository>(repository, packageRepositoryFactory()); return repository; }
public IRepository GetSerializableRepository(string name, string source, PackageOperationType operationType, Func <IPackageRepository> packageRepositoryFactory, bool renew = false) { Argument.IsNotNullOrEmpty(() => name); Argument.IsNotNull(() => packageRepositoryFactory); var key = GetKey(operationType, name); if (_keyIdDictionary.TryGetValue(key, out var id)) { return(!renew ? _idTupleDictionary[id].Item1 : CreateSerializableRepository(id, name, source, operationType, packageRepositoryFactory)); } id = UniqueIdentifierHelper.GetUniqueIdentifier <RepositoryCacheService>(); _keyIdDictionary.Add(key, id); return(CreateSerializableRepository(id, name, source, operationType, packageRepositoryFactory)); }
public bool CanExecute(PackageOperationType operationType, IPackageDetails package) { if (package == null) { return(false); } switch (operationType) { case PackageOperationType.Install: return(CanInstall(package)); case PackageOperationType.Update: return(CanUpdate(package)); case PackageOperationType.Uninstall: return(CanUninstall(package)); } return(false); }
public bool CanExecute(PackageOperationType operationType, IPackageDetails package) { if (package == null) { return false; } switch (operationType) { case PackageOperationType.Install: return CanInstall(package); case PackageOperationType.Update: return CanUpdate(package); case PackageOperationType.Uninstall: return CanUninstall(package); } return false; }
public async Task ExecuteAsync(PackageOperationType operationType, IPackageDetails packageDetails) { Argument.IsNotNull(() => packageDetails); switch (operationType) { case PackageOperationType.Uninstall: await ExecuteUninstallAsync(packageDetails, default); break; case PackageOperationType.Install: await ExecuteInstallAsync(packageDetails, default); break; case PackageOperationType.Update: await ExecuteUpdateAsync(packageDetails, default); break; } }
public IRepository GetSerializableRepository(string name, string source, PackageOperationType operationType, Func<IPackageRepository> packageRepositoryFactory, bool renew = false) { Argument.IsNotNullOrEmpty(() => name); Argument.IsNotNull(() => packageRepositoryFactory); var key = GetKey(operationType, name); int id; if (_keyIdDictionary.TryGetValue(key, out id)) { if (!renew) { return _idTupleDictionary[id].Item1; } return CreateSerializableRepository(id, name, source, operationType, packageRepositoryFactory); } id = _idCounter++; _keyIdDictionary.Add(key, id); return CreateSerializableRepository(id, name, source, operationType, packageRepositoryFactory); }
public bool CanExecute(PackageOperationType operationType, IPackageDetails package) { if (package == null) { return(false); } var selectedPackage = GetPackageDetailsFromSelectedVersion(package, _localRepository) ?? package; switch (operationType) { case PackageOperationType.Install: return(CanInstall(selectedPackage)); case PackageOperationType.Update: return(CanUpdate(selectedPackage)); case PackageOperationType.Uninstall: return(true); } return(false); }
public async Task <bool> CanExecuteAsync(PackageOperationType operationType, IPackageDetails package) { if (package is null) { return(false); } var selectedPackage = await GetPackageDetailsFromSelectedVersionAsync(package, _localRepository) ?? package; switch (operationType) { case PackageOperationType.Install: return(await CanInstallAsync(selectedPackage)); case PackageOperationType.Update: return(await CanUpdateAsync(selectedPackage)); case PackageOperationType.Uninstall: return(true); } return(false); }
public IRepository GetSerialisableRepository(string name, PackageOperationType operationType, Func <IPackageRepository> packageRepositoryFactory, bool renew = false) { Argument.IsNotNullOrEmpty(() => name); Argument.IsNotNull(() => packageRepositoryFactory); var key = GetKey(operationType, name); int id; if (_keyIdDictionary.TryGetValue(key, out id)) { if (!renew) { return(_idTupleDictionary[id].Item1); } return(CreateSerialisableRepository(name, operationType, packageRepositoryFactory, id)); } id = _idCounter++; _keyIdDictionary.Add(key, id); return(CreateSerialisableRepository(name, operationType, packageRepositoryFactory, id)); }
private void FinishOperation(PackageOperationType type, string operationPath, IPackageDetails package) { PackagingDeletemeMessage.SendWith(new PackageOperationInfo(operationPath, type, package)); _packageOperationNotificationService.NotifyOperationFinished(operationPath, type, package); }
public void NotifyOperationBatchFinished(PackageOperationType operationType, params IPackageDetails[] packages) { Argument.IsNotNullOrEmptyArray(() => packages); OperationsBatchFinished.SafeInvoke(this, new PackageOperationBatchEventArgs(operationType, packages)); }
public IRepository GetSerialisableRepository(string name, PackageOperationType operationType, Func <IPackageRepository> packageRepositoryFactory, bool renew = false) { return(GetSerializableRepository(name, string.Empty, operationType, packageRepositoryFactory, renew)); }
public string GetActionName(PackageOperationType operationType) { return Enum.GetName(typeof(PackageOperationType), operationType); }
public bool IsRefreshRequired(PackageOperationType operationType) { switch (operationType) { case PackageOperationType.Uninstall: return true; case PackageOperationType.Install: return false; case PackageOperationType.Update: return true; } return false; }
public IRepository GetSerialisableRepository(string name, PackageOperationType operationType, Func<IPackageRepository> packageRepositoryFactory, bool renew = false) { return GetSerializableRepository(name, string.Empty, operationType, packageRepositoryFactory, renew); }
public static IPackageDetails Create(PackageOperationType operationType, IPackageSearchMetadata versionMetadata, NuGetVersion packageVersion, bool?isLastVersion) { var selectedIdentity = new PackageIdentity(versionMetadata.Identity.Id, packageVersion); return(Create(operationType, versionMetadata, selectedIdentity, isLastVersion)); }
public void NotifyOperationFinished(string installPath, PackageOperationType operationType, IPackageDetails packageDetails) { Argument.IsNotNull(() => packageDetails); OperationFinished?.Invoke(this, new PackageOperationEventArgs(packageDetails, installPath, operationType)); }
public string GetPluralActionName(PackageOperationType operationType) { return($"{Enum.GetName(typeof(PackageOperationType), operationType)} all"); }
public void NotifyOperationBatchFinished(PackageOperationType operationType, params IPackageDetails[] packages) { Argument.IsNotNullOrEmptyArray(() => packages); OperationsBatchFinished?.Invoke(this, new PackageOperationBatchEventArgs(operationType, packages)); }
public string GetPluralActionName(PackageOperationType operationType) { return(string.Format("{0} all", Enum.GetName(typeof(PackageOperationType), operationType))); }
private static string GetKey(PackageOperationType operationType, string name) { return string.Format("{0}_{1}", operationType, name); }
public string GetPluralActionName(PackageOperationType operationType) { return string.Format("{0} all", Enum.GetName(typeof(PackageOperationType), operationType)); }
private static string GetKey(PackageOperationType operationType, string name) { return(string.Format("{0}_{1}", operationType, name)); }
private static string GetKey(PackageOperationType operationType, string name) { return($"{operationType}_{name}"); }
public async Task ExecuteAsync(PackageOperationType operationType, IPackageDetails packageDetails, IRepository sourceRepository = null, bool allowedPrerelease = false) { await ExecuteAsync(operationType, packageDetails); }
public string GetActionName(PackageOperationType operationType) { return(Enum.GetName(typeof(PackageOperationType), operationType)); }