private async void Save() { SettingsViewModel settingsViewModel = this; try { settingsViewModel.IsLoading = true; if (settingsViewModel.CurrentSettings.UserSettings.IsMusic && settingsViewModel.SoundVolume == 0.0) { if (await settingsViewModel.ShowYesOrNoDialogAsync("Запрос", "Вы уверены что хотите отключить звук уведомлений?") == MessageDialogResult.Negative) { return; } settingsViewModel.CurrentSettings.UserSettings.SoundVolume = settingsViewModel._settigs.UserSettings.SoundVolume; settingsViewModel.CurrentSettings.UserSettings.IsMusic = false; } settingsViewModel.CurrentSettings.UserSettings.BookmakersList = settingsViewModel.Bookmakers.ToList <Bookmaker>(); SettingsValidator.CheckOnErrors(settingsViewModel.CurrentSettings); if (settingsViewModel._client != null) { try { if (SettingsValidator.IsHaveChangeForServer(settingsViewModel._settigs, settingsViewModel.CurrentSettings)) { await settingsViewModel._client.UpdateSettingsAsync(SettingsHelper.SettingConverter(settingsViewModel.CurrentSettings)); } if (new SettingsValidatorForPositiveOptions().IsHaveChangeForServer(settingsViewModel._settigs, settingsViewModel.CurrentSettings)) { await settingsViewModel._client.UpdateBookmakersSettingsAsync(SettingsHelper.SettingConverterToBookmaker(settingsViewModel.CurrentSettings)); } } catch { } } settingsViewModel.CurrentSettings.UserSettings.SoundFile = settingsViewModel.CurrentSoundFile; settingsViewModel.CurrentSettings.UserSettings.SoundVolume = settingsViewModel.SoundVolume; settingsViewModel.CurrentSettings.UserSettings.ChromeLanguage = settingsViewModel.CurrentLanguageInfo.Language; settingsViewModel.CurrentSettings.UserSettings.NewListForksFilterType = settingsViewModel.ENewListForksFilter; settingsViewModel.CurrentSettings.UserSettings.IsHighlightingNewForks = settingsViewModel.IsHighlightingNewForks; settingsViewModel.CurrentSettings.IsAllowMultiProxy = settingsViewModel.IsAllowMultiProxy; try { await settingsViewModel._currencyItemManager.UpdateCurses(); } catch (Exception ex) { await settingsViewModel.ShowErrorDialogAsync("Ошибка обновления курсов. Будут использованы старые", ex); } foreach (Api allApi in Api.AllApis) { allApi.Request.BlockManager.IsBlocked = settingsViewModel.CurrentSettings.UserSettings.IsBlockedScripts; } Api.IsBLockedScripts = settingsViewModel.CurrentSettings.UserSettings.IsBlockedScripts; Settings.Save(settingsViewModel.CurrentSettings); await settingsViewModel.ShowSuccessDialogAsync("Настройки успешно сохранены."); } catch (Exception ex) { await settingsViewModel.ShowErrorDialogAsync("Не удалось сохранить настройки. " + Environment.NewLine + ex.Message); } finally { settingsViewModel.IsLoading = false; } }