Пример #1
0
        public string InstallPluginPackage(OnlinePluginPackage onlinePluginPackage, OnlinePluginPackageRelease release)
        {
            string folder = onlinePluginPackage.InstallPluginPackage(release);

            AddPluginPackage(folder);
            return(folder);
        }
Пример #2
0
        private void xInstallButonn_Click(object sender, RoutedEventArgs e)
        {
            xInstallButton.ButtonText = "Downloading & Installing...";
            xProcessingImage.Visibility = Visibility.Visible;
            OnlinePluginPackageRelease release = (OnlinePluginPackageRelease)xVersionComboBox.SelectedItem;
            OnlinePluginPackage onlinePluginPackage = (OnlinePluginPackage)xPluginsGrid.CurrentItem;
            if (!string.IsNullOrEmpty(onlinePluginPackage.CurrentPackage) && onlinePluginPackage.CurrentPackage != release.Version)
            {
                UninstallPlugin();
            }           
            Task.Factory.StartNew(() =>
            {
                WorkSpace.Instance.PlugInsManager.InstallPluginPackage(onlinePluginPackage, release);
                onlinePluginPackage.Status = "Installed";                
            }).ContinueWith((a) =>
            {
                Dispatcher.Invoke(() =>
                {
                    xProcessingImage.Visibility = Visibility.Collapsed;
                    xInstallButton.ButtonText = "Install";
                    xInstalledVersion.Text = onlinePluginPackage.CurrentPackage;                    
                });
            });
            xInstalledSection.Visibility = Visibility.Visible;                                                  
                        
            ((OnlinePluginPackage)xPluginsGrid.CurrentItem).CurrentPackage = release.Version;

            SetInstallButton();
        }
Пример #3
0
        private void DownloadMissingPlugins()
        {
            Reporter.ToStatus(eStatusMsgKey.DownloadingMissingPluginPackages);
            WorkSpace.Instance.PlugInsManager.BackgroudDownloadInprogress = true;
            try
            {
                ObservableList <OnlinePluginPackage> OnlinePlugins = null;
                foreach (PluginPackage SolutionPlugin in mPluginPackages)
                {
                    //TODO: Make it work for linux environments
                    if (SolutionPlugin.Folder.Contains("AppData\\Roaming") && !System.IO.File.Exists(Path.Combine(SolutionPlugin.Folder, @"Ginger.PluginPackage.Services.json")))
                    {
                        if (OnlinePlugins == null)
                        {
                            OnlinePlugins = WorkSpace.Instance.PlugInsManager.GetOnlinePluginsIndex();
                        }

                        OnlinePluginPackage OnlinePlugin = OnlinePlugins.Where(x => x.Id == SolutionPlugin.PluginId).FirstOrDefault();

                        OnlinePluginPackageRelease OPR = OnlinePlugin.Releases.Where(x => x.Version == SolutionPlugin.PluginPackageVersion).FirstOrDefault();

                        OnlinePlugin.InstallPluginPackage(OPR);

                        //WorkSpace.Instance.PlugInsManager.InstallPluginPackage(OnlinePlugin, OPR);
                    }
                }
            }
            finally
            {
                WorkSpace.Instance.PlugInsManager.BackgroudDownloadInprogress = false;
                Reporter.HideStatusMessage();
            }
        }
Пример #4
0
        public string InstallPluginPackage(OnlinePluginPackageRelease release)
        {
            string pluginSubFolder = Path.Combine(Id, release.Version);
            string folder          = DownloadPackage(release.assets[0].browser_download_url, pluginSubFolder).Result;

            return(folder);
        }
Пример #5
0
        public string InstallPluginPackage(OnlinePluginPackageRelease release)
        {
            Reporter.ToLog(eLogLevel.INFO, "Downloading Plugin" + Id + " " + release.Version);
            string pluginSubFolder = Path.Combine(Id, release.Version);
            string folder          = DownloadPackage(release.assets[0].browser_download_url, pluginSubFolder).Result;

            return(folder);
        }
Пример #6
0
        private void DownloadMissingPlugins()
        {
            Reporter.ToStatus(eStatusMsgKey.DownloadingMissingPluginPackages);
            WorkSpace.Instance.PlugInsManager.BackgroudDownloadInprogress = true;
            try
            {
                ObservableList <OnlinePluginPackage> OnlinePlugins = null;
                foreach (PluginPackage SolutionPlugin in mPluginPackages)
                {
                    Reporter.ToLog(eLogLevel.INFO, "Check PluginId: " + SolutionPlugin.PluginId);
                    Reporter.ToLog(eLogLevel.INFO, "Check Plugin folder: " + SolutionPlugin.Folder);
                    if (Directory.Exists(SolutionPlugin.Folder))
                    {
                        Reporter.ToLog(eLogLevel.INFO, "Plugin folder exist so no need to download");
                        continue;   // Plugin folder exist so no need to download
                    }

                    if (isPrivatePlugin(SolutionPlugin))
                    {
                        Reporter.ToLog(eLogLevel.INFO, "Private plugin folder no need to download");
                        continue;   // this is private plugin located on the developer machine will not be able to download from online
                    }

                    if (OnlinePlugins == null)
                    {
                        Reporter.ToLog(eLogLevel.INFO, "Getting online plugins index");
                        OnlinePlugins = WorkSpace.Instance.PlugInsManager.GetOnlinePluginsIndex();
                    }


                    OnlinePluginPackage OnlinePlugin = OnlinePlugins.Where(x => x.Id == SolutionPlugin.PluginId).FirstOrDefault();
                    if (OnlinePlugin == null)
                    {
                        Reporter.ToLog(eLogLevel.ERROR, "Plugin not found in online!");
                        continue;
                    }

                    Reporter.ToLog(eLogLevel.INFO, "Checking plugin release: version=" + SolutionPlugin.PluginPackageVersion);
                    OnlinePluginPackageRelease OPR = OnlinePlugin.Releases.Where(x => x.Version == SolutionPlugin.PluginPackageVersion).FirstOrDefault();

                    if (OPR != null)
                    {
                        Reporter.ToLog(eLogLevel.INFO, "Plugin version found starting install");
                        OnlinePlugin.InstallPluginPackage(OPR);
                    }
                    else
                    {
                        Reporter.ToLog(eLogLevel.ERROR, "Plugin version not found cannot install!");
                    }
                }
            }
            finally
            {
                WorkSpace.Instance.PlugInsManager.BackgroudDownloadInprogress = false;
                Reporter.HideStatusMessage();
            }
        }
Пример #7
0
 private void SetInstallButton()
 {
     OnlinePluginPackageRelease release = (OnlinePluginPackageRelease)xVersionComboBox.SelectedItem;
     OnlinePluginPackage pluginPackageInfo = (OnlinePluginPackage)xPluginsGrid.CurrentItem;
     if (release!=null && pluginPackageInfo.CurrentPackage == release.Version)
     {
         xInstallButton.IsEnabled = false;
     }
     else
     {
         xInstallButton.IsEnabled = true;
     }
 }
Пример #8
0
        public void InstallSeleniumPlugin_1_0()
        {
            //Arrange
            PluginsManager pluginsManager             = new PluginsManager(WorkSpace.Instance.SolutionRepository);
            ObservableList <OnlinePluginPackage> list = pluginsManager.GetOnlinePluginsIndex();
            OnlinePluginPackage        plugin         = (from x in list where x.Id == "SeleniumDriver" select x).SingleOrDefault();
            OnlinePluginPackageRelease release1_1     = (from x in plugin.Releases where x.Version == "1.0" select x).SingleOrDefault();

            // Act
            string folder = pluginsManager.InstallPluginPackage(plugin, release1_1);

            //Assert
            Assert.IsTrue(Directory.Exists(folder));
        }
Пример #9
0
        private void xInstallButonn_Click(object sender, RoutedEventArgs e)
        {
            xProcessingImage.Visibility = Visibility.Visible;
            OnlinePluginPackageRelease release = (OnlinePluginPackageRelease)xVersionComboBox.SelectedItem;

            Task.Factory.StartNew(() =>
            {
                OnlinePluginPackage onlinePluginPackage = (OnlinePluginPackage)xPluginsGrid.CurrentItem;
                WorkSpace.Instance.PlugInsManager.InstallPluginPackage(onlinePluginPackage, release);
                onlinePluginPackage.Status = "Installed";
            }).ContinueWith((a) =>
            {
                Dispatcher.Invoke(() =>
                {
                    xProcessingImage.Visibility = Visibility.Collapsed;
                });
            });
        }
Пример #10
0
        private void XVersionComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            xPublishedTextBlock.Text   = null;
            xReleaseNameTextBlock.Text = null;
            xSizeTextBlock.Text        = null;
            xDownloads.Text            = null;
            xInstallButonn.Visibility  = Visibility.Collapsed;

            OnlinePluginPackageRelease release = (OnlinePluginPackageRelease)xVersionComboBox.SelectedItem;

            if (release != null)
            {
                xPublishedTextBlock.Text   = release.published_at;
                xReleaseNameTextBlock.Text = release.name;
                if (release.assets.Count > 0)
                {
                    xSizeTextBlock.Text       = release.assets[0].size / 1000 + " KB";
                    xDownloads.Text           = release.assets[0].download_count;
                    xInstallButonn.Visibility = Visibility.Visible;
                }
            }
        }