Ejemplo n.º 1
0
        private async void Button_Install(object sender, RoutedEventArgs e)
        {
            AppIsWorking(true);
            var button = sender as Button;

            var    plugin_status = ((Package)button.DataContext).Status;
            string plugin        = ((Package)button.DataContext).Namespace ?? ((Package)button.DataContext).Modulename;

            consolestd = "";
            consolestdL.Clear();
            if (HasWriteAccessToFolder(CurrentPluginPath))
            {
                switch (plugin_status)
                {
                case AvsApi.PluginStatus.Installed:
                    if (MessageBox.Show("Uninstall " + ((Package)button.DataContext).Name + "?", "Uninstall?", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
                    {
                        await avsrepo.UninstallAsync(plugin);
                    }
                    break;

                case AvsApi.PluginStatus.InstalledUnknown:
                    if (MessageBox.Show("Your local file (with unknown version) has the same name as " + ((Package)button.DataContext).Name + " and will be overwritten, proceed?", "Force Upgrade?", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
                    {
                        await avsrepo.UpgradeAsync(plugin, force : true);
                    }
                    break;

                case AvsApi.PluginStatus.NotInstalled:
                    await avsrepo.InstallAsync(plugin);

                    break;

                case AvsApi.PluginStatus.UpdateAvailable:
                    await avsrepo.UpgradeAsync(plugin);

                    break;
                }



                ConsoleBox.Focus();
                ConsoleBox.CaretIndex = ConsoleBox.Text.Length;
                ConsoleBox.ScrollToEnd();

                await ReloadPluginsAsync();
            }
            else
            {
                MessageBox.Show("Can't write to plugins folder. Restart program as admin.");
            }
            AppIsWorking(false);
        }