public AppSettingsService(ISettingsProvider settingsProvider) { DebugHelper.Assert(settingsProvider != null); this.settingsProvider = settingsProvider ?? throw new ArgumentNullException(nameof(settingsProvider)); // Initialize settings properties, using default values if necessary. ApplicationTheme defaultTheme = ApplicationTheme.Dark; int iTheme = settingsProvider.Get <int>(AppThemeSetting, (int)defaultTheme); if (!Enum.IsDefined(typeof(ApplicationTheme), iTheme)) { AppTheme = defaultTheme; } else { AppTheme = (ApplicationTheme)iTheme; } ClearClipboardOnTimer = settingsProvider.Get <uint>(ClearClipboardTimerSetting, 12); EnableClipboardTimer = settingsProvider.Get(EnableClearClipboardTimerSetting, true); LockTimer = settingsProvider.Get <uint>(LockTimerSetting, 60 * 5); EnableLockTimer = settingsProvider.Get(EnableLockTimerSetting, true); EnableMotd = settingsProvider.Get(EnableMotdSetting, true); CopyPasswordOnUrlOpen = settingsProvider.Get(CopyPasswordOnUrlLaunchSetting, false); DatabaseSortMode.Mode defaultMode = Contracts.Enums.DatabaseSortMode.Mode.DatabaseOrder; int iSortMode = settingsProvider.Get <int>(DatabaseSortModeSetting, (int)defaultMode); if (!Enum.IsDefined(typeof(DatabaseSortMode.Mode), iSortMode)) { DatabaseSortMode = defaultMode; } else { DatabaseSortMode = (DatabaseSortMode.Mode)iSortMode; } }
/// <summary> /// Validates sorting for the special "Sort Testing" group. /// </summary> private void VerifySortGroupChildren(DatabaseSortMode.Mode mode) { List <string> groupNames; List <string> entryNames; switch (mode) { case DatabaseSortMode.Mode.AlphabetAscending: groupNames = new List <string> { "Alpha", "Beta", "Delta", "Gamma" }; entryNames = groupNames; break; case DatabaseSortMode.Mode.AlphabetDescending: groupNames = new List <string> { "Gamma", "Delta", "Beta", "Alpha" }; entryNames = groupNames; break; case DatabaseSortMode.Mode.DatabaseOrder: groupNames = new List <string> { "Beta", "Alpha", "Gamma", "Delta" }; entryNames = new List <string> { "Delta", "Gamma", "Alpha", "Beta" }; break; default: Assert.Fail("Unknown sort mode."); return; } VerifyListsMatch(groupNames.Concat(entryNames).ToList(), this.viewModel.SortedChildren.Select(node => node.Node).ToList()); }