/// <summary> /// Saves specified settin's new value into database /// </summary> /// <param name="setting">The setting that value got changed</param> public void SaveSetting(SettingsPropertyInfo setting) { // Get the setting based on its name var entity = DbSet.Where(x => x.Name == setting.Name).FirstOrDefault(); // If none was found if (entity == null) { // Create new one entity = new Setting { Name = setting.Name, Type = setting.Type.ToString() }; // And add it to the database DbSet.Add(entity); } // Do nothing if Value already set if (entity.Value == setting.Value.ToString()) { return; } // Change its value entity.Value = setting.Value.ToString(); // Save changes we made SaveChanges(); }
/// <summary> /// Gets all currently saved settings in the database /// </summary> /// <returns>List of every setting as <see cref="SettingsPropertyInfo"/></returns> public List <SettingsPropertyInfo> GetAllSettings() { // Prepare a list of property infos to return var propertyList = new List <SettingsPropertyInfo>(); // Get all the settings from database var entities = DbSet.ToList(); // For each one... foreach (var entity in entities) { // Create new property info var propertyInfo = new SettingsPropertyInfo { Name = entity.Name, Type = Type.GetType(entity.Type), Value = entity.Value }; // Add it to the list propertyList.Add(propertyInfo); } // Return every collected setting return(propertyList); }
/// <summary> /// Gets all currently saved settings in the database /// </summary> /// <returns>List of every setting as <see cref="SettingsPropertyInfo"/></returns> public IEnumerable <SettingsPropertyInfo> GetAllSettings() { // Get all the settings from database var entities = GetAll(); // For each one... foreach (var entity in entities) { // Create new property info var propertyInfo = new SettingsPropertyInfo { Name = entity.Name, Type = Type.GetType(entity.Type), Value = entity.Value }; // Return current one as an element of the whole list yield return(propertyInfo); } }