public UnresolvedInstallationSet SetVersionRange(ModuleIdentifier module, ModuleVersionRange versionRange) { if (_resolved != null && _resolved.ContainsKey(module)) { throw new InvalidOperationException(); } return(new UnresolvedInstallationSet(_resolved ?? ImmutableDictionary <ModuleIdentifier, ModuleVersion> .Empty, (_unresolved ?? ImmutableDictionary <ModuleIdentifier, ModuleVersionRange> .Empty).SetItem(module, versionRange))); }
public UnresolvedInstallationSet WithUnresolved(ModuleIdentifier module, ModuleVersionRange versionRange) { if (ContainsModule(module)) { throw new InvalidOperationException(); } return(new UnresolvedInstallationSet(_resolved ?? ImmutableDictionary <ModuleIdentifier, ModuleVersion> .Empty, (_unresolved ?? ImmutableDictionary <ModuleIdentifier, ModuleVersionRange> .Empty).Add(module, versionRange))); }
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { switch (value) { case ModuleVersionRange moduleVersionRange: return(moduleVersionRange); case string str: return(ModuleVersionRange.Parse(str)); default: return(base.ConvertFrom(context, culture, value)); } }
public Task ModuleUpdatedAsync(ModuleIdentifier module, ModuleVersion version, IDependencyResolver dependencyResolver, // TODO: This should be injected via DI CancellationToken cancellation = default) { if (module == default) { throw new ArgumentDefaultException(nameof(module)); } if (!InstalledModules.ContainsModule(module)) { throw new InvalidOperationException("The specified module is not installed."); } InstalledModules = InstalledModules.SetVersionRange(module, ModuleVersionRange.SingleVersion(version)); return(ResolveDependenciesAsync(dependencyResolver, cancellation)); }