// TODO: Wipe out local settings if the PC has changed. private SettingsService(SettingsTemplate data, string persistentStorage) { _data = data; if (_data.Local.MachineName != Environment.MachineName) { Logger.Warn($"Local settings are for {_data.Local.MachineName}, expected {Environment.MachineName}. Discarding local settings."); _data.Local = new LocalSettings { MachineName = Environment.MachineName }; } _persistentStorage = persistentStorage; _data.Local.OnMutate += (sender, args) => Persist(); _data.Persistent.OnMutate += (sender, args) => Persist(); }
/// <summary> /// SetUp Settings in this Project - needs Type of Setting to Set Up /// </summary> /// <typeparam name="T">Setting to set up</typeparam> public static void SetUp <T>() where T : SettingsTemplate { //Create a Setting instance, apply default settings, look for user settings. if they exist, load them. //Save everything to be safe & Set up QuickAccess Properties _settings = Activator.CreateInstance <T>(); _settings.SetDefaultSettings(); if (_settings.CheckForUserSettings()) { _settings.LoadUserSettings(); } _settings.SaveUserSettings(); _isSetUp = true; _settings.SetQuickAccessProperties(); }