//private async void CheckVersion() //{ // StartScreenViewModel startViewModel = this; // startViewModel._sw.Start(); // startViewModel.CurrentMessage = "Проверка обновлений"; // NewVersionUpdater updater = new NewVersionUpdater(); // bool isNeedUpdate = false; // try // { // isNeedUpdate = await updater.IsNeedUpdate(); // } // catch (Exception ex) // { // await startViewModel.ShowErrorDialogAsync("Проверка обновлений, не удалась. Подождите 10-30 секунд и попробуйте еще раз " + Environment.NewLine + " " + ex.Message); // if (await startViewModel.ShowYesOrNoDialogAsync("Запрос", "Можем попробовать продолжить без обновлений, но возможна не стабильная работа. Продолжить?") == MessageDialogResult.Negative) // { // Application.Current.Invoke(new Action(Application.Current.Shutdown)); // return; // } // } // if (isNeedUpdate) // { // int num1 = 1; // object obj; // do // { // int num2 = 0; // try // { // startViewModel.CurrentMessage = "Загружаем обновления"; // await updater.DownLoadUpdater(); // updater.LaunchUpdater(); // } // catch (Exception ex) // { // obj = (object)ex; // num2 = 1; // } // if (num2 == 1) // ++num1; // else // goto label_19; // } // while (await startViewModel.ShowYesOrNoDialogAsync("Ошибка", string.Format("Updater не загрузился. Попробовать {0} раз?", (object)num1)) != MessageDialogResult.Negative); // Process.Start(""); // Application.Current.Invoke(new Action(Application.Current.Shutdown)); // return; // label_19: // obj = (object)null; // Application.Current.Invoke(new Action(Application.Current.Shutdown)); // } // else // { // startViewModel.CurrentMessage = "Проверка обновлений завершена"; // await startViewModel.Sleep(startViewModel._loadLimit, startViewModel._sw.Elapsed); // startViewModel.LoadCurrencies(); // } //} private async void LoadCurrencies() { StartScreenViewModel startViewModel = this; startViewModel._sw.Restart(); startViewModel.CurrentMessage = "Загрузка курсов валют"; CurrenciesDownloader downloader = new CurrenciesDownloader(); try { Dictionary <ECurrency, Decimal> actualCursesFromCb = await downloader.GetActualCursesFromCb(); startViewModel._settigs.UserSettings.Curses = actualCursesFromCb; } catch (Exception ex1) { await startViewModel.ShowErrorDialogAsync("Ошибка загрузки курса с Цб. Пробуем загрузить с зеркала", ex1); try { Dictionary <ECurrency, Decimal> cursesFromMirror = await downloader.GetActualCursesFromMirror(); startViewModel._settigs.UserSettings.Curses = cursesFromMirror; } catch (Exception ex2) { await startViewModel.ShowErrorDialogAsync("Ошибка загрузки курса с зеркала", ex2); if (await startViewModel.ShowYesOrNoDialogAsync("Запрос", "Вы хотите продолжить без актуальных курсов валют?") == MessageDialogResult.Negative) { Application.Current.Invoke((Action)(() => Application.Current.Shutdown())); return; } if (startViewModel._settigs.UserSettings.Curses == null) { startViewModel._settigs.UserSettings.Curses = downloader.GetDefaultCurses(); } } } try { CurrencyItemManager currencyItemManager = new CurrencyItemManager(startViewModel._settigs.UserSettings.CurrencyItems, downloader); currencyItemManager.UpdateCurses(startViewModel._settigs.UserSettings.Curses); startViewModel._settigs.UserSettings.CurrencyItems = currencyItemManager.GetCurrencyUserSettings(); } catch (Exception ex) { await startViewModel.ShowErrorDialogAsync("Ошибка обновление актуальных курсов", ex); } await startViewModel.Sleep(startViewModel._loadLimit, startViewModel._sw.Elapsed); startViewModel.LoadFrigateSettings(); }
public SettingsViewModel([CanBeNull] ServerClient client) { this._appEncoding = ClientConfig.AppEncoding; this._client = client; this.RemoveBkFromListCommand = new ReallyCommand <Bookmaker>(new Action <Bookmaker>(this.RemoveBkFromList)); this.CopyLoginPasswordCommand = new ReallyCommand <Bookmaker>(new Action <Bookmaker>(this.CopyLoginPassword)); this.SaveCommand = new ReallyCommand(new Action(this.Save)); this.ResetBrowserCommand = new ReallyCommand(new Action(this.ResetBrowser)); this.ClearCacheCommand = new ReallyCommand(new Action(this.ClearCache)); this.ShowDemoCommand = new ReallyCommand(new Action <object>(this.ShowDemo)); this.DeleteSettingsCommand = new ReallyCommand(new Action(this.DeleteSettings)); this.PlaySoundCommand = new ReallyCommand(new Action(this.PlaySound)); this.DeleteInitDataCommand = new ReallyCommand(new Action(this.DeleteInitData)); this.CopyCurrentUserAgentCommand = new ReallyCommand((Action)(async() => { SettingsViewModel settingsViewModel = this; Clipboard.SetText(settingsViewModel.CurrentUserAgent); await settingsViewModel.ShowSuccessDialogAsync("UserAgent скопирован в буфер обмена"); })); this.OpenUrlCommand = new ReallyCommand <string>((Action <string>)(url => { if (string.IsNullOrWhiteSpace(url)) { return; } Process.Start(url); })); this.CurrentSettings = this._settigs.Clone(); if (this.CurrentSettings.UserSettings.UserHotKeys == null) { this.CurrentSettings.UserSettings.UserHotKeys = UserHotKeys.Default; } this.Bookmakers = new ObservableCollection <Bookmaker>(this.CurrentSettings.UserSettings.BookmakersList); this.SelectedBookmaker = this.Bookmakers.FirstOrDefault <Bookmaker>(); this.CurrentUserAgent = this.CurrentSettings.UserSettings.FakeProfile.UserAgent; this.AllCurrencies = Enum.GetValues(typeof(ECurrency)).Cast <ECurrency>().ToList <ECurrency>(); this.FakeProfiles = this.LoadUserAgents(); this.UserCurrenciesSettings = this.CurrentSettings.UserSettings.CurrencyItems; this.RoundRules = Enum.GetValues(typeof(ERoundRule)).Cast <ERoundRule>().ToList <ERoundRule>(); this.SearchSoundFiles(); this.CurrentLanguageInfo = EChromeLanguageHelper.GetFullInfo(this.CurrentSettings.UserSettings.ChromeLanguage); this.ENewListForksFilter = this._settigs.UserSettings.NewListForksFilterType; this.IsHighlightingNewForks = this._settigs.UserSettings.IsHighlightingNewForks; this.IsAllowMultiProxy = this._settigs.IsAllowMultiProxy; this.DisabledIndProxy = new ReallyCommand <Bookmaker>((Action <Bookmaker>)(bookmaker => bookmaker.Proxy.IsCustomProxy = false)); this._downloader = new CurrenciesDownloader(); this._currencyItemManager = new CurrencyItemManager(this.CurrentSettings.UserSettings.CurrencyItems, this._downloader); this.UpdateCurseCommand = new ReallyCommand <CurrencyItem>((Action <CurrencyItem>)(async curse => { SettingsViewModel settingsViewModel = this; settingsViewModel.IsLoadCursesNow = true; if (curse != null) { try { CurrencyItem currencyItem = await settingsViewModel._currencyItemManager.UpdateCurse(curse); } catch (Exception ex) { await settingsViewModel.ShowErrorDialogAsync("Ошибка", ex); } } settingsViewModel.IsLoadCursesNow = false; })); this.SetCustomUserAgentCommand = new ReallyCommand(new Action(this.SetCustomUserAgent)); }