public SettingsWindowViewModel() { var connectionString = App.GetConnectionString(); _dataAdapter = new SettingsDataAdapter(connectionString); _watchedApplicationDataAdapter = new WatchedApplicationDataAdapter(connectionString); _languageDataAdapter = new ApplicationLanguageDataAdapter(connectionString); Settings = SettingsViewModelFactory.GetSettings(_dataAdapter, _watchedApplicationDataAdapter, _languageDataAdapter); _controls = new Dictionary <string, UserControl>(); var viewKey = ChamiUIStrings.ViewCategory; _controls[viewKey] = new ConsoleAppearanceEditor(Settings.ConsoleAppearanceSettings); var loggingKey = ChamiUIStrings.LoggingCategory; _controls[loggingKey] = new LoggingSettingsEditor(Settings.LoggingSettings); var safetyKey = ChamiUIStrings.SafetyCategory; _controls[safetyKey] = new SafeVariableEditor(Settings.SafeVariableSettings); var detectorKey = ChamiUIStrings.DetectorCategory; _controls[detectorKey] = new ApplicationDetectorControl(Settings.WatchedApplicationSettings); var languageKey = ChamiUIStrings.LanguageCategory; _controls[languageKey] = new LanguageSelectorControl(Settings.LanguageSettings); DisplayedControl = _controls.Values.FirstOrDefault(); var minimizationKey = ChamiUIStrings.MinimizationCategory; _controls[minimizationKey] = new MinimizationBehaviourControl(Settings.MinimizationBehaviour); }
public App() { Logger = new ChamiLogger(); Logger.AddFileSink("chami.log"); _serviceProvider = CreateServices(); InitializeComponent(); #if !DEBUG DispatcherUnhandledException += ShowExceptionMessageBox; #endif _taskbarIcon = (TaskbarIcon)FindResource("ChamiTaskbarIcon"); MigrateDatabase(); try { Settings = new SettingsDataAdapter(GetConnectionString()).GetSettings(); var watchedApplications = new WatchedApplicationDataAdapter(GetConnectionString()).GetActiveWatchedApplications(); Settings.WatchedApplicationSettings.WatchedApplications = new ObservableCollection <WatchedApplicationViewModel>(watchedApplications); var availableLanguages = new ApplicationLanguageDataAdapter(GetConnectionString()).GetAllApplicationLanguages(); Settings.LanguageSettings.AvailableLanguages = new ObservableCollection <ApplicationLanguageViewModel>(availableLanguages); } catch (SQLiteException) { MigrateDatabase(); } }
/// <summary> /// Retrieves all Chami settings. /// </summary> /// <param name="dataAdapter">The <see cref="SettingsDataAdapter"/> to use to retrieve settings.</param> /// <param name="watchedApplicationDataAdapter">The <see cref="WatchedApplicationDataAdapter"/> to retrieve the <see cref="WatchedApplicationViewModel"/>s.</param> /// <param name="languageDataAdapter">The <see cref="ApplicationLanguageDataAdapter"/> to retrieve all <see cref="ApplicationLanguageViewModel"/>s.</param> /// <returns>A <see cref="SettingsViewModel"/> object.</returns> public static SettingsViewModel GetSettings(SettingsDataAdapter dataAdapter, WatchedApplicationDataAdapter watchedApplicationDataAdapter, ApplicationLanguageDataAdapter languageDataAdapter) { var settings = dataAdapter.GetSettings(); var watchedApplications = watchedApplicationDataAdapter.GetActiveWatchedApplications(); settings.WatchedApplicationSettings.WatchedApplications = new ObservableCollection <WatchedApplicationViewModel>(watchedApplications); var availableLanguages = languageDataAdapter.GetAllApplicationLanguages(); var currentLanguage = languageDataAdapter.GetApplicationLanguageByCode(settings.LanguageSettings.CurrentLanguage.Code); settings.LanguageSettings.AvailableLanguages = new ObservableCollection <ApplicationLanguageViewModel>(availableLanguages); settings.LanguageSettings.CurrentLanguage = availableLanguages?.Where(l => l.Code == currentLanguage.Code).FirstOrDefault(); return(settings); }