Пример #1
0
        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)));
        }
Пример #2
0
        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)));
        }
Пример #3
0
        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));
        }