private static void ApplySettingValue(string identifier, string name, SettingItem item) { using (SettingsEntities entities = EntityFrameworkHelper.CreateContext <SettingsEntities>(EdmxPath)) { UserSettingData userData = entities.GetUserSettingData(identifier, name); if (userData != null) { item.ApplyUserValue(userData.Value); } } }
private IList <SettingKey> SaveSettings(IEnumerable <KeyValuePair <SettingKey, SettingItem> > values) { List <SettingKey> keys = new List <SettingKey>(); using (SettingsEntities entities = EntityFrameworkHelper.CreateContext <SettingsEntities>(EdmxPath)) { foreach (var pair in values) { SettingKey key = pair.Key; IProxyType <string> value = pair.Value; try { if (AddOrUpdateSetting(entities, key, value)) { keys.Add(key); } } catch (ConstraintException ex) { Logger.Instance.LogFormat(LogType.Error, this, Properties.Resources.SettingAddOrUpdateConstraintError, key); Logger.Instance.LogException(this, ex); } catch (DataException ex) { Logger.Instance.LogFormat(LogType.Error, this, Properties.Resources.SettingAddOrUpdateError, key); Logger.Instance.LogException(this, ex); } } if (keys.Count > 0) { entities.SaveChanges(); } } return(keys); }
private static bool AddOrUpdateSetting(SettingsEntities entities, SettingKey key, IProxyType <string> value) { UserSettingData userSetting = entities.GetUserSettingData(key.Identifier, key.Name); if (userSetting == null) { userSetting = new UserSettingData(); userSetting.Identifier = key.Identifier; userSetting.Name = key.Name; entities.UserSettings.AddObject(userSetting); } string valueToPersist = value.ProxiedValue; if (!string.Equals(userSetting.Value, valueToPersist, StringComparison.Ordinal)) { userSetting.Value = valueToPersist; return(true); } return(false); }