private async Task <string> SquirrelUpdate(bool showInfo)
{
try
{
using (UpdateManager _manager = new UpdateManager(ConfigurationManager.AppSettings["CurrentReleaseURL"]))
{
UpdateInfo _update = await _manager.CheckForUpdate();
if (_update.ReleasesToApply.Any())
{
Version _newVersion = _update.ReleasesToApply.OrderByDescending(r => r.Version).First().Version.Version;
Update _updateWindow = new Update();
_updateWindow.Show();
await _manager.UpdateApp((p) => _updateWindow.SetProgress(p));
_updateWindow.Close();
return(Utilities.Paths.Exe(_newVersion));
}
else if (showInfo)
{
MessageBox.Show(Framework.Resources.UpdateSuccessText, Framework.Resources.AppName, MessageBoxButton.OK, MessageBoxImage.Information, MessageBoxResult.OK, MessageBoxOptions.DefaultDesktopOnly);
}
}
}
catch (WebException webException)
{
if (showInfo)
{
MessageBox.Show(Framework.Resources.UpdateErrorText, Framework.Resources.UpdateErrorTitle, MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.OK, MessageBoxOptions.DefaultDesktopOnly);
}
BacktraceLogger.Log(new Backtrace.Model.BacktraceReport(webException));
}
catch (Exception e)
{
BacktraceLogger.Log(new Backtrace.Model.BacktraceReport(e));
Framework.Settings.Instance.AutoUpdate = false;
Framework.Settings.Instance.Save();
using (EventLog _log = new EventLog("Application"))
{
_log.Source = Framework.Resources.AppName;
_log.WriteEntry(e.ToString(), EventLogEntryType.Error, 100, 1);
}
MessageBox.Show(Framework.Resources.UpdateErrorFatalText, Framework.Resources.UpdateErrorTitle, MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.OK, MessageBoxOptions.DefaultDesktopOnly);
}
return(null);
}