//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(); }