private async void SaveSettings() { IsLoading = true; SettingsSaved = false; Settings.SettingsVersion = ApplicationInfo.Version; ApplyProxySettings(); if (Settings.AppSettings.RunApplicationAtSystemStartup) { WindowsStartupService.RunAtWindowsStartup(); } else { WindowsStartupService.RemoveFromWindowsStartup(); } try { foreach (var calendarSyncProfile in Settings.CalendarSyncProfiles) { calendarSyncProfile.SetSourceDestTypes(); } foreach (var calendarSyncProfile in Settings.TaskSyncProfiles) { calendarSyncProfile.SetSourceDestTypes(); } foreach (var calendarSyncProfile in Settings.ContactSyncProfiles) { calendarSyncProfile.SetSourceDestTypes(); } var result = await SettingsSerializationService.SerializeSettingsAsync(Settings); if (result) { LastSavedSettings = Settings; Settings = LastSavedSettings.DeepClone(); } Init = true; await MessageService.ShowMessage(result? "Settings Saved Successfully" : "Error Saving Settings", "Settings"); SettingsSaved = true; } catch (AggregateException exception) { SettingsSaved = false; var flattenException = exception.Flatten(); MessageService.ShowMessageAsync(flattenException.Message); } catch (Exception exception) { SettingsSaved = false; MessageService.ShowMessageAsync(exception.Message); } finally { IsLoading = false; } }
private async void SaveSettings() { IsLoading = true; SettingsSaved = false; Settings.GoogleAccounts = GoogleAccounts; Settings.SettingsVersion = ApplicationInfo.Version; Settings.AppSettings.MinimizeToSystemTray = MinimizeToSystemTray; Settings.AppSettings.HideSystemTrayTooltip = HideSystemTrayTooltip; Settings.AppSettings.CheckForUpdates = CheckForUpdates; Settings.AppSettings.CheckForAlphaReleases = CheckForAlphaReleases; Settings.AppSettings.RunApplicationAtSystemStartup = RunApplicationAtSystemStartup; Settings.AppSettings.StartMinimized = StartMinimized; Settings.AppSettings.IsManualSynchronization = IsManualSynchronization; Settings.AllowManualAuthentication = AllowManualGoogleAuth; Settings.AppSettings.ProxySettings = new ProxySetting { BypassOnLocal = ProxySettings.BypassOnLocal, Domain = ProxySettings.Domain, Password = ProxySettings.Password, Port = ProxySettings.Port, ProxyAddress = ProxySettings.ProxyAddress, ProxyType = ProxySettings.ProxyType, UseDefaultCredentials = ProxySettings.UseDefaultCredentials, UserName = ProxySettings.UserName }; ApplyProxySettings(); Settings.SyncProfiles.Clear(); foreach (var profileViewModel in SyncProfileList) { Settings.SyncProfiles.Add(profileViewModel.SaveCurrentSyncProfile()); } if (RunApplicationAtSystemStartup) { WindowsStartupService.RunAtWindowsStartup(); } else { WindowsStartupService.RemoveFromWindowsStartup(); } try { var result = await SettingsSerializationService.SerializeSettingsAsync(Settings); await MessageService.ShowMessage(result? "Settings Saved Successfully" : "Error Saving Settings", "Settings"); SettingsSaved = true; } catch (AggregateException exception) { SettingsSaved = false; var flattenException = exception.Flatten(); MessageService.ShowMessageAsync(flattenException.Message); } catch (Exception exception) { SettingsSaved = false; MessageService.ShowMessageAsync(exception.Message); } finally { IsLoading = false; } }