public static void Do() { var getter = new RemoteVersionInfoGetter(); if (!isFristCheck) { MainWindowBus.Info("Update.CheckingUpdate"); } getter.Advance().ContinueWith(task => { if (task.IsFaulted) { if (!isFristCheck) { MainWindowBus.Error("Update.Failed"); } } else { if (task.Result.Version > Self.Version) { App.Current.Dispatcher.Invoke(() => { DoAsk(task.Result); }); } else { MainWindowBus.Success("Update.IsLatestVersion"); } } isFristCheck = false; }); }
public static Task RefreshAsync(Action callback) { return(Task.Run(() => { RemoteVersionInfoGetter getter = new RemoteVersionInfoGetter(); try { Result = getter.GetSync(); callback?.Invoke(); } catch (Exception e) { SLogger.Warn(nameof(Updater), "cannot refresh update informations", e); } })); }