private int UpdatePlugins(IPluginRepository repository) { var supportedInterfaces = GetSupportedInterfaces(); var currentPlugins = _pluginLoader.Plugins.Select(x => new PluginIdentifier(x.Id.Value, x.Version)).ToList(); var allPlugins = repository.FindUpdatesFor(currentPlugins, supportedInterfaces); int numUpdated = 0; foreach (var installedPlugin in _pluginLoader.Plugins) { if (TryFindNewestPlugin(installedPlugin, allPlugins, out var id)) { if (TryDownloadAndInstall(repository, id)) { ++numUpdated; } } } return(numUpdated); }
public IReadOnlyList <PluginIdentifier> FindUpdatesFor(IReadOnlyList <PluginIdentifier> plugins, IReadOnlyList <PluginInterface> interfaces) { return(_inner.FindUpdatesFor(plugins, interfaces)); }