private void DownloadUpdate(UpdateXml update) { UpdateDownload updateDownloadWnd = new UpdateDownload(update.FileData, applicationInfo.ApplicationIcon); updateDownloadWnd.Owner = applicationInfo.Context; var result = updateDownloadWnd.ShowDialog(); if (result == true) { string currentPath = applicationInfo.ApplicationAssemby.Location; List <string> newPaths = new List <string>(); foreach (FileUpdateStruct item in update.FileData) { newPaths.Add(Path.GetDirectoryName(currentPath) + "\\" + item.filename); } UpdateApplication(updateDownloadWnd.TempFilePaths, currentPath, newPaths, update.LaunchArgs); Environment.Exit(exitCode: 0); } else if (result == false) { UpdateMessageBox.Show(applicationInfo, "Загрузка обновления отменена", "Загрузка обновления отменена", "Пожалуйста, попробуйте позже", MessageBoxInfoType.Error); } else { UpdateMessageBox.Show(applicationInfo, "Ошибка загрузки обновления", "Обнаружена проблема с загрузкой обновления", "Пожалуйста, попробуйте позже", MessageBoxInfoType.Error); } }
private void BackgrounWorker_DoWork(object sender, DoWorkEventArgs e) { IUpdatetable applicationInfo = (IUpdatetable)e.Argument; if (!UpdateXml.ExistsOnServer(applicationInfo.UpdateXmlLocation)) { e.Cancel = true; UpdateMessageBox.Show(applicationInfo, "Проверка обновления", "Обновления отсутствуют", MessageBoxInfoType.Info); } else { e.Result = UpdateXml.Parse(applicationInfo.UpdateXmlLocation, applicationInfo.ApplicationID); } }
private void BackgrounWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { if (!e.Cancelled) { UpdateXml update = (UpdateXml)e.Result; if (update != null && update.IsNewerThan(this.applicationInfo.ApplicationAssemby.GetName().Version)) { UpdateAccept updateAcceptWnd = new UpdateAccept(applicationInfo, update); updateAcceptWnd.Owner = applicationInfo.Context; if (updateAcceptWnd.ShowDialog() == true) { DownloadUpdate(update); } } else { UpdateMessageBox.Show(applicationInfo, "Проверка обновления", "Обновление не требуется", "У вас актуальная версия приложения" + "\nВерсия: " + applicationInfo.ApplicationAssemby.GetName().Version.ToString(), MessageBoxInfoType.Info); } } }