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; }
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); }