示例#1
0
    private static void ChangelogWorker_DoWork(object sender, DoWorkEventArgs e)
    {
        ChangelogWorkerResult result = new ChangelogWorkerResult();

        try
        {
            Version currentVersion = new Version(GenericHelper.Version);
            Version serverVersion  = new Version(GetLatestVersion());

            if (serverVersion > currentVersion)
            {
                string changelogUrl = GetChangelogUrl();

                WebClient webClient = new WebClient();
                webClient.DownloadFile(new Uri(changelogUrl), string.Format(@"{0}\Changelog.txt", GenericHelper.TempPath));

                result.Changelog  = ParseChangelog(currentVersion, serverVersion);
                result.Version    = serverVersion;
                result.AnyUpdates = true;
            }
        }
        catch
        {
            result.ErrorMessage = "Could not contact update server.";

            if (ConfigHandler.UseTranslation)
            {
                result.ErrorMessage = Translator.GetText("NoUpdateServer");
            }

            result.AnyErrors = true;
        }

        e.Result = result;
    }
示例#2
0
    private void ChangelogWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
    {
        ChangelogWorkerResult result = (ChangelogWorkerResult)e.Result;

        updateButton.Enabled = true;
        closeButton.Enabled  = true;
        _downloading         = false;

        if (result.AnyErrors)
        {
            updateButton.Text = "Check";

            if (ConfigHandler.UseTranslation)
            {
                updateButton.Text = Translator.GetText("updateButtonCheck");
            }

            string currentVersionText = "Current version";

            if (ConfigHandler.UseTranslation)
            {
                currentVersionText = Translator.GetText("currentVersionText");
            }

            infoTextBox.Text = string.Format("{0}\r\n{3} {1}\r\n\r\n{2}", GenericHelper.ApplicationName, GenericHelper.Version, result.ErrorMessage, currentVersionText);
        }
        else
        {
            string newVersionInfo;

            if (result.AnyUpdates)
            {
                FormBorderStyle = FormBorderStyle.Sizable;
                Size            = new Size(439, 300);
                MinimumSize     = new Size(439, 300);             // error in .NET

                changelogGroupBox.Visible = true;
                changelogTextBox.Visible  = true;
                changelogTextBox.Text     = result.Changelog;

                updateButton.Text = "Update";

                if (ConfigHandler.UseTranslation)
                {
                    updateButton.Text = Translator.GetText("updateButtonUpdate");
                }

                string newVersionText = "New version {0} available.";

                if (ConfigHandler.UseTranslation)
                {
                    newVersionText = Translator.GetText("newVersionText");
                }

                newVersionInfo = string.Format(newVersionText, result.Version);
            }
            else
            {
                updateButton.Text = "Check";

                if (ConfigHandler.UseTranslation)
                {
                    updateButton.Text = Translator.GetText("updateButtonCheck");
                }

                newVersionInfo = "Latest version already installed.";

                if (ConfigHandler.UseTranslation)
                {
                    newVersionInfo = Translator.GetText("LatestVersionInstalled");
                }
            }

            string currentVersionText = "Current version";

            if (ConfigHandler.UseTranslation)
            {
                currentVersionText = Translator.GetText("currentVersionText");
            }

            infoTextBox.Text = string.Format("{0}\r\n{3} {1}\r\n\r\n{2}", GenericHelper.ApplicationName, GenericHelper.Version, newVersionInfo, currentVersionText);
        }

        FireUpdateCheckCompleteEvent(result.ErrorMessage, result.Version, result.AnyUpdates, result.AnyErrors);
    }