コード例 #1
0
ファイル: SplashForm.cs プロジェクト: dhootha/paradox
        private void synchronizeVsixButton()
        {
            VsixButton.InvokeSafe(() =>
            {
                var vsixVersion = launcher.SdkVersionManager.VsixVersion;
                var latestPkg   = vsixVersion.LatestAvailablePackage;
                var currentPkg  = vsixVersion.InstalledPackage;

                // No version, remote nor local
                if (latestPkg == null)
                {
                    VsixButton.Text    = "Install";
                    VsixButton.Enabled = false;
                    return;
                }

                VsixButton.Enabled = true;
                if (currentPkg == null)
                {
                    VsixButton.Text = "Install";
                    return;
                }

                VsixButton.Text = latestPkg.Version > currentPkg.Version ? "Upgrade to " + latestPkg.Version.Version : "Re-Install";
            });
        }
コード例 #2
0
ファイル: SplashForm.cs プロジェクト: dhootha/paradox
        // Checks the VSIX status and recommend to install the latest plugin to the user (if available)
        private void ProposeVSIXInstallIfNecessary()
        {
            VsixButton.InvokeSafe(() =>
            {
                var vsixVersion = launcher.SdkVersionManager.VsixVersion;
                var latestPkg   = vsixVersion.LatestAvailablePackage;
                var currentPkg  = vsixVersion.InstalledPackage;

                if (latestPkg == null)
                {
                    // No VSIX on the server
                    return;
                }

                bool installPossible = false;
                bool upgradePossible = false;

                if (currentPkg == null)
                {
                    installPossible = true;
                }
                else
                {
                    upgradePossible = latestPkg.Version > currentPkg.Version;
                }

                // No install nor upgrade possible
                if (!installPossible && !upgradePossible)
                {
                    return;
                }

                // Propose install
                var confirmResult = MessageBox.Show("We recommend " + (installPossible? "installing": "upgrading") + " the Visual Studio integration for Paradox.\nInstall plugin for Visual Studio? ",
                                                    "Visual Studio Integration", MessageBoxButtons.YesNo);

                if (confirmResult == DialogResult.No)
                {
                    return;
                }

                launcher.InstallVsixPackage(vsixVersion.InstalledPackage, vsixVersion.LatestAvailablePackage);
            });
        }