/// <summary> /// Adds or replaces a package registration entry in the registry. /// </summary> /// <param name="package">The package to register.</param> /// <param name="cancellationToken">Token used to cancel the package registration.</param> /// <exception cref="ArgumentNullException"><paramref name="package"/> is null.</exception> public Task RegisterPackageAsync(RegisteredPackage package, CancellationToken cancellationToken) { if (package == null) { throw new ArgumentNullException(nameof(package)); } var packages = GetInstalledPackages(this.RegistryRoot); packages.RemoveAll(p => PackageNameAndGroupEquals(p, package)); packages.Add(package); WriteInstalledPackages(this.RegistryRoot, packages); return(AH.CompletedTask); }
/// <summary> /// Removes a package registration entry from the registry. /// </summary> /// <param name="package">THe package to unregister.</param> /// <param name="cancellationToken">Token used to cancel the operation.</param> /// <returns>True if package was unregistered; false if it was not in the registry.</returns> public Task <bool> UnregisterPackageAsync(RegisteredPackage package, CancellationToken cancellationToken) { if (package == null) { throw new ArgumentNullException(nameof(package)); } var packages = GetInstalledPackages(this.RegistryRoot); bool removed = packages.RemoveAll(p => PackageNameAndGroupEquals(p, package)) > 0; if (removed) { WriteInstalledPackages(this.RegistryRoot, packages); } return(Task.FromResult(removed)); }
/// <summary> /// Removes a package registration entry from the registry. /// </summary> /// <param name="package">The package to unregister.</param> /// <returns>True if package was unregistered; false if it was not in the registry.</returns> public Task <bool> UnregisterPackageAsync(RegisteredPackage package) => this.UnregisterPackageAsync(package, default);
/// <summary> /// Adds or replaces a package registration entry in the registry. /// </summary> /// <param name="package">The package to register.</param> /// <exception cref="ArgumentNullException"><paramref name="package"/> is null.</exception> public Task RegisterPackageAsync(RegisteredPackage package) => this.RegisterPackageAsync(package, default);