private void bgWorker_DoWork(object sender, DoWorkEventArgs e) { IGuacUpdatable application = (IGuacUpdatable)e.Argument; if (!GuacUpdateXml.ExistsOnServer(application.UpdateXmlLocation)) { e.Cancel = true; } else { e.Result = GuacUpdateXml.Parse(application.UpdateXmlLocation, application.ApplicationID); } }
private void BgWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { if (!e.Cancelled) { GuacUpdateXml update = (GuacUpdateXml)e.Result; if (update != null && update.IsNewerThan(this.applicationInfo.ApplicationAssembly.GetName().Version)) { if (new GuacUpdateAcceptForm(this.applicationInfo, update).ShowDialog(this.applicationInfo.Context) == DialogResult.Yes) { this.DownloadUpdate(update); } } } }
internal GuacUpdateInfoForm(IGuacUpdatable applicationInfo, GuacUpdateXml updateInfo) { InitializeComponent(); try { config = JsonConvert.DeserializeObject(File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + "Data/config.json")); } catch { MessageBox.Show("Could not read config file, either fix it or redownload the file", "Guac"); Application.Exit(); } UpdateTheme(); this.Text = applicationInfo.ApplicationName + " - Update Info"; this.lblVersions.Text = String.Format("Current Version: {0}\nUpdate Version: {1}", applicationInfo.ApplicationAssembly.GetName().Version.ToString(), updateInfo.Version.ToString()); this.txtDescription.Text = updateInfo.Description; }
private void DownloadUpdate(GuacUpdateXml update) { GuacUpdateDownloadForm form = new GuacUpdateDownloadForm(update.Uri, update.MD5); DialogResult result = form.ShowDialog(this.applicationInfo.Context); if (result == DialogResult.OK) { string currentPath = this.applicationInfo.ApplicationAssembly.Location; string newPath = Path.GetDirectoryName(currentPath) + "\\" + update.FileName; UpdateApplication(form.TempFilePath, currentPath, newPath, update.LaunchArgs); Application.Exit(); } else if (result == DialogResult.Abort) { MessageBox.Show("The update download was cancelled.\nThis program has not been modified.", "Update Download Cancelled", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("There was a problem downloading the update.\nPlease try again later.", "Update Download Error", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
internal GuacUpdateAcceptForm(IGuacUpdatable applicationInfo, GuacUpdateXml updateInfo) { InitializeComponent(); try { config = JsonConvert.DeserializeObject(File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + "Data/config.json")); } catch { MessageBox.Show("Could not read config file, either fix it or redownload the file", "Guac"); Application.Exit(); } UpdateTheme(); this.applicationInfo = applicationInfo; this.updateInfo = updateInfo; this.Text = this.applicationInfo.ApplicationName + " - Update Available"; this.lblNewVersion.Text = string.Format("New Version: {0}", this.updateInfo.Version.ToString()); }