Exemple #1
0
        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));
 }