private void CheckUpdateButton_OnClick(object sender, RoutedEventArgs e) { UpdateRing.IsActive = true; Task.Run(() => SquirrelManager.IsUpdateAvailable() .ContinueWith(x => { var result = x.Result; Dispatcher.Invoke(() => AskForUpdate(result)); })); }
private void AskForUpdate(bool result) { UpdateRing.IsActive = false; if (result) { var task = MessageFactory.NewMessage() .MessageTranslated("Dialog.UpdateAvailable") .TitleTranslated("Dialog.Update") .ButtonTranslated("Dialog.Update_Do", 0) .ButtonTranslated("Dialog.Update_Dismiss", 1) .ShowMessage(); if (task.Result == 0) { Task.Run(() => SquirrelManager.UpdateSquirrel(null, (x, y) => { Dispatcher?.Invoke(() => { if (x) { MessageFactory.NewMessage() .MessageTranslated("Dialog.UpdateFinished") .TitleTranslated("Dialog.Update") .ShowMessage(); } else { MessageFactory.NewMessage() .MessageTranslated("Dialog.UpdateFailed") .Title("Dialog.Update") .ShowMessage(); } }); })); } } else { MessageFactory.NewMessage() .MessageTranslated("Dialog.UpdateNotAvailable") .Title("Dialog.Update") .ShowMessage(); } }
public App() { #if DEBUG Log4NetService.Instance.Configure(new FileInfo("log4net.debug.config")); #endif SimpleIoc.Default.Register <ILogService>(() => Log4NetService.Instance); SquirrelManager.Startup(); var instance = new Task <bool>(IsSingleInstance); instance.ContinueWith(x => { if (!x.Result) { Current.Shutdown(); } }); instance.Start(); }