using System; using System.Collections.Generic; using System.Linq; using System.Text; using MatterHackers.MatterControl; namespace MatterHackers.MatterControl { public class UserSettings { static UserSettings globalInstance = null; public Dictionary settingsDictionary; public static UserSettings Instance { get { if (globalInstance == null) { globalInstance = new UserSettings(); globalInstance.LoadData(); } return globalInstance; } } public string get(string key) { string result; if (settingsDictionary.ContainsKey(key)) { result = settingsDictionary[key].Value; } else { result = null; } return result; } public void set(string key, string value) { DataStorage.UserSetting setting; if (settingsDictionary.ContainsKey(key)) { setting = settingsDictionary[key]; } else { setting = new DataStorage.UserSetting(); setting.Name = key; settingsDictionary[key] = setting; } setting.Value = value; setting.Commit(); } private void LoadData() { IEnumerable settingsList = GetApplicationSettings(); settingsDictionary = new Dictionary(); foreach (DataStorage.UserSetting s in settingsList) { settingsDictionary[s.Name] = s; } } IEnumerable GetApplicationSettings() { //Retrieve a list of settings from the Datastore string query = string.Format("SELECT * FROM UserSetting;"); IEnumerable result = (IEnumerable)DataStorage.Datastore.Instance.dbSQLite.Query(query); return result; } } }