/// <summary> /// Gibt einen Konfigurationswert zurück /// </summary> /// <param name="configurationName">Konfigurationswert</param> /// <param name="pluginName">PlugInName</param> /// <param name="userName">Benutzername</param> /// <param name="noCaching">Wenn true, wird kein Cache verwendet</param> /// <returns>Wert</returns> public T GetValue <T>(string configurationName, string pluginName, string userName, bool noCaching = false) { var returnValue = cacheService.Get <ConfigurationValue>( ConfigurationValue.GetKeyName(configurationName, pluginName, userName)); if (returnValue == null || noCaching == true) { var value = configurationRepository.GetValue(pluginName, userName, configurationName); // If no configuration value exists, try to load a user independent setting if (string.IsNullOrWhiteSpace(value)) { value = configurationRepository.GetValue(pluginName, "", configurationName); } returnValue = new ConfigurationValue(configurationName, pluginName, userName, value); returnValue.Value = CastConfigurationValue <T>(value); if (noCaching == false) { cacheService.Set(returnValue); } } return((T)returnValue.Value); }
/// <summary> /// Setzt einen Konfigurationswert /// </summary> /// <param name="configurationName">Name der Konfiguration</param> /// <param name="pluginName">PlugIn-Name</param> /// <param name="userName">Benutzername</param> /// <param name="value">Wert</param> public void SetValue <T>(string configurationName, string pluginName, string userName, T value) { object _value = value; if (_value != null) { if (value is bool || value is Boolean) { _value = Convert.ToInt32(value).ToString(); } } configurationRepository.SetValue(pluginName, userName, configurationName, _value == null ? null : _value.ToString()); var configValue = cacheService.Get <ConfigurationValue>( ConfigurationValue.GetKeyName(configurationName, pluginName, userName)); if (configValue != null) { configValue.Value = value; } else { cacheService.Set(new ConfigurationValue(configurationName, pluginName, userName, value)); } }