public void LaunchUpdate(ApplicationVersion version) { var caption = _translation.GetFormattedTitle(_applicationNameProvider.ApplicationName); try { var done = false; while (!done) { var interaction = new UpdateDownloadInteraction(version.DownloadUrl); _interactionInvoker.Invoke(interaction); var result = interaction.Success; if (result != true) { done = true; continue; } if (_hashUtil.VerifyFileMd5(interaction.DownloadedFile, version.FileHash)) { done = true; _threadManager.UpdateAfterShutdownAction = () => Process.Start(interaction.DownloadedFile); continue; } var message = _translation.DownloadHashErrorMessage; var res = ShowMessage(message, caption, MessageOptions.YesNo, MessageIcon.Warning); if (res != MessageResponse.No) { continue; } _threadManager.UpdateAfterShutdownAction = () => Process.Start(interaction.DownloadedFile); done = true; } } catch (Exception) { var message = _translation.DownloadErrorMessage; var res = ShowMessage(message, caption, MessageOptions.YesNo, MessageIcon.PDFCreator); if (res == MessageResponse.Yes) { Process.Start(version.DownloadUrl); } } }
private bool TryLaunchUpdate(IApplicationVersion version, string caption, string filePath) { try { var interaction = new UpdateDownloadInteraction(async() => await _updateDownloader.StartDownloadAsync(version)); _interactionInvoker.Invoke(interaction); if (interaction.Success) { // Hash test if (!_hashUtil.VerifyFileMd5(filePath, version.FileHash)) { //Hash does not fit should we retry download var message = _translation.DownloadHashErrorMessage; var res = ShowMessage(message, caption, MessageOptions.YesNo, MessageIcon.Warning); if (res == MessageResponse.Yes) // Yes please retry download: Download was not successful { return(false); } } } } catch (Exception) { var message = _translation.DownloadErrorMessage; var res = ShowMessage(message, caption, MessageOptions.YesNo, MessageIcon.PDFCreator); if (res == MessageResponse.Yes) { Process.Start(version.DownloadUrl); } } return(true); // Download was successful }