示例#1
0
        private void installPluginsButton_Click(object sender, EventArgs e)
        {
            StatusView.LockUI();
            StatusView.ShowProgressIndicator();
            var updateOrInstallInfo = new UpdateOrInstallPluginsBackgroundWorkerArgument();
            // if there is a local plugin with same name and same major and minor version then it's an update
            var pluginsToUpdate = from remotePlugin in CheckedPlugins
                                  let matchingLocalPlugins = from localPlugin in pluginManager.Plugins
                                                             where localPlugin.Name == remotePlugin.Name
                                                             where localPlugin.Version.Major == remotePlugin.Version.Major
                                                             where localPlugin.Version.Minor == remotePlugin.Version.Minor
                                                             where IsNewerThan(remotePlugin, localPlugin)
                                                             select localPlugin
                                                             where matchingLocalPlugins.Count() > 0
                                                             select remotePlugin;

            // otherwise install a new plugin
            var pluginsToInstall = CheckedPlugins.Except(pluginsToUpdate);

            updateOrInstallInfo.PluginsToInstall = pluginsToInstall;
            updateOrInstallInfo.PluginsToUpdate  = pluginsToUpdate;
            updateOrInstallPluginsBackgroundWorker.RunWorkerAsync(updateOrInstallInfo);
        }
    private void installProductsButton_Click(object sender, EventArgs e) {
      StatusView.LockUI();
      StatusView.ShowProgressIndicator();
      var updateOrInstallInfo = new UpdateOrInstallPluginsBackgroundWorkerArgument();
      var selectedProduct = (DeploymentService.ProductDescription)productsListView.SelectedItems[0].Tag;
      // if there is a local plugin with same name and same major and minor version then it's an update
      var pluginsToUpdate = from plugin in selectedProduct.Plugins
                            let matchingLocalPlugins = from localPlugin in pluginManager.Plugins
                                                       where localPlugin.Name == plugin.Name
                                                       where localPlugin.Version.Major == plugin.Version.Major
                                                       where localPlugin.Version.Minor == plugin.Version.Minor
                                                       where IsNewerThan(plugin, localPlugin)
                                                       select localPlugin
                            where matchingLocalPlugins.Count() > 0
                            select plugin;

      // otherwise install a new plugin
      var pluginsToInstall = selectedProduct.Plugins.Except(pluginsToUpdate);

      updateOrInstallInfo.PluginsToInstall =
        pluginsToInstall
        .Cast<IPluginDescription>()
        .ToList();
      updateOrInstallInfo.PluginsToUpdate =
        pluginsToUpdate
        .Cast<IPluginDescription>()
        .ToList();
      updateOrInstallPluginsBackgroundWorker.RunWorkerAsync(updateOrInstallInfo);
    }
    private void installPluginsButton_Click(object sender, EventArgs e) {
      StatusView.LockUI();
      StatusView.ShowProgressIndicator();
      var updateOrInstallInfo = new UpdateOrInstallPluginsBackgroundWorkerArgument();
      // if there is a local plugin with same name and same major and minor version then it's an update
      var pluginsToUpdate = from remotePlugin in CheckedPlugins
                            let matchingLocalPlugins = from localPlugin in pluginManager.Plugins
                                                       where localPlugin.Name == remotePlugin.Name
                                                       where localPlugin.Version.Major == remotePlugin.Version.Major
                                                       where localPlugin.Version.Minor == remotePlugin.Version.Minor
                                                       where IsNewerThan(remotePlugin, localPlugin)
                                                       select localPlugin
                            where matchingLocalPlugins.Count() > 0
                            select remotePlugin;

      // otherwise install a new plugin
      var pluginsToInstall = CheckedPlugins.Except(pluginsToUpdate);

      updateOrInstallInfo.PluginsToInstall = pluginsToInstall;
      updateOrInstallInfo.PluginsToUpdate = pluginsToUpdate;
      updateOrInstallPluginsBackgroundWorker.RunWorkerAsync(updateOrInstallInfo);
    }