您的位置:首页 > 产品设计 > UI/UE

system setting manager, save or get system values from database

2011-08-11 23:49 323 查看
1. use Dictionary to get the system setting values from database; (name: string;;; value could be any type) ("IP", "12345")

2. create a public Property for each record in DB

how to use:

if (String.IsNullOrEmpty(SystemSettingManager.IP))
{
SystemSettingManager.IP = "127.0.0.1";
}
else
{
string ip = SystemSettingManager.IP
}


public class SystemSettingManager
{

private Dictionary<string, string> _values;

private Dictionary<string, string> PopulateValues()
{
Dictionary<string, string> values = new Dictionary<string, string>();

SystemSettingService service = new SystemSettingService();
var settings = service.GetAll();

foreach (var setting in settings)
values.Add(setting.SystemSettingName, setting.SystemSettingValue);

return values;
}

// name / value in database;  example (smtp and membership)

#region load smtp setting

public string SMTPServerIP
{
get { return GetSetting("SMTPServerIP"); }
set { UpdateSetting("SMTPServerIP", value.ToString()); }
}

public int SMTPPort
{
get { return GetIntSetting("SMTPPort"); }
set { UpdateSetting("SMTPPort", value.ToString()); }
}
public string SMTPFrom
{
get { return GetSetting("SMTPFrom"); }
set { UpdateSetting("SMTPFrom", value.ToString()); }
}
public string SMTPFromName
{
get { return GetSetting("SMTPFromName"); }
set { UpdateSetting("SMTPFromName", value.ToString()); }
}
public string SMTPPassword
{
get { return GetSetting("SMTPPassword"); }
set { UpdateSetting("SMTPPassword", value.ToString()); }
}
public string SMTPAccount
{
get { return GetSetting("SMTPAccount"); }
set { UpdateSetting("SMTPAccount", value.ToString()); }
}
public bool SMTPUseCredentials
{
get
{
var value = GetBooleanSetting("SMTPUseCredentials");
return value.HasValue ? value.Value : false;
}
set { UpdateSetting("SMTPUseCredentials", value.ToString()); }
}
public string CatchAllEmail
{
get { return GetSetting("CatchAllEmail"); }
set { UpdateSetting("CatchAllEmail", value.ToString()); }
}

#endregion

#region public default properties

#region Membership settings
public bool RequiresUniqueEmail
{
get
{
var value = GetBooleanSetting("RequiresUniqueEmail");
return value.HasValue ? value.Value : false;
}
set { UpdateSetting("RequiresUniqueEmail", value.ToString()); }
}
public bool EnablePasswordRetrieval
{
get
{
var value = GetBooleanSetting("EnablePasswordRetrieval");
return value.HasValue ? value.Value : false;
}
set { UpdateSetting("EnablePasswordRetrieval", value.ToString()); }
}
public bool EnablePasswordReset
{
get
{
var value = GetBooleanSetting("EnablePasswordReset");
return value.HasValue ? value.Value : false;
}
set { UpdateSetting("EnablePasswordReset", value.ToString()); }
}
public bool RequiresQuestionAndAnswer
{
get
{
var value = GetBooleanSetting("RequiresQuestionAndAnswer");
return value.HasValue ? value.Value : false;
}
set { UpdateSetting("RequiresQuestionAndAnswer", value.ToString()); }
}

public int MaxInvalidPasswordAttempts
{
get { return GetIntSetting("MaxInvalidPasswordAttempts"); }
set { UpdateSetting("MaxInvalidPasswordAttempts", value.ToString()); }
}
public int MinRequiredPasswordLength
{
get { return GetIntSetting("MinRequiredPasswordLength"); }
set { UpdateSetting("MinRequiredPasswordLength", value.ToString()); }
}
public int MinRequiredNonalphanumericCharacters
{
get { return GetIntSetting("MinRequiredNonalphanumericCharacters"); }
set { UpdateSetting("MinRequiredNonalphanumericCharacters", value.ToString()); }
}
public int PasswordAttemptWindow
{
get { return GetIntSetting("PasswordAttemptWindow"); }
set { UpdateSetting("PasswordAttemptWindow", value.ToString()); }
}
public string PasswordFormat
{
get { return GetSetting("PasswordFormat"); }
set { UpdateSetting("PasswordFormat", value.ToString()); }
}
#endregion

#region other system setting
public string CurrentAuthenticationType
{
get { return GetSetting("CurrentAuthenticationType"); }
set { UpdateSetting("CurrentAuthenticationType", value.ToString()); }
}
public int MinRequiredUserNameLength
{
get { return GetIntSetting("MinRequiredUserNameLength"); }
set { UpdateSetting("MinRequiredUserNameLength", value.ToString()); }
}
public int UserTimeoutDuration
{
get { return GetIntSetting("UserTimeoutDuration"); }
set { UpdateSetting("UserTimeoutDuration", value.ToString()); }
}
#endregion

#region Active directory system setting
public string ADServer_IP
{
get { return GetSetting("ADServer_IP"); }
set { UpdateSetting("ADServer_IP", value.ToString()); }
}
public string ADDomain
{
get { return GetSetting("ADDomain"); }
set
{
UpdateSetting("ADDomain", value.ToString());
}
}
public string ADAccount
{
get { return GetSetting("ADAccount"); }
set { UpdateSetting("ADAccount", value.ToString()); }
}
public string ADPassword
{
get { return GetSetting("ADPassword"); }
set { UpdateSetting("ADPassword", value.ToString()); }
}
#endregion

#region Other settings
public string DefaultRole
{
get { return GetSetting("DefaultRole"); }
set { UpdateSetting("DefaultRole", value.ToString()); }
}

public string CurrencyCode
{
get { return GetSetting("CurrencyCode"); }
set { UpdateSetting("CurrencyCode", value.ToString()); }
}

#endregion

#endregion

#region public methods
public string GetSetting(string key)
{
if (_values == null || _values.Count == 0)
_values = PopulateValues();

if (_values.ContainsKey(key))
return _values[key];

return string.Empty;
}

public decimal GetDecimalSetting(string key)
{
decimal decValue = 0m;

if (_values == null || _values.Count == 0)
_values = PopulateValues();

if (_values.ContainsKey(key))
decimal.TryParse(_values[key], out decValue);

return decValue;
}

public int GetIntSetting(string key)
{
int intValue = 0;

if (_values == null || _values.Count == 0)
_values = PopulateValues();

if (_values.ContainsKey(key))
int.TryParse(_values[key], out intValue);

return intValue;
}

public bool? GetBooleanSetting(string key)
{
bool? enabled = null;

if (_values == null || _values.Count == 0)
_values = PopulateValues();

if (_values.ContainsKey(key))
{
bool _enabled;
if (bool.TryParse(_values[key], out _enabled))
{
enabled = _enabled;
}
}

return enabled;
}

public bool UpdateSetting(string setting, string value)
{
var userId = FrameworkManager.UserManager.GetLoggedInUserId();
return UpdateSetting(setting, value, userId);
}

private bool UpdateSetting(string setting, string value, Guid? userId)
{

SystemSettingService service = new SystemSettingService();
var dbSetting = service.GetBySystemSettingName(setting);

if (dbSetting != null)
{
dbSetting.SystemSettingValue = value;
dbSetting.UpdatedBy = userId;
dbSetting.UpdatedDate = DateTime.Now;
}
else
{
dbSetting = SystemSettingService.CreateSystemSetting(setting, value, true, DateTime.Now, DateTime.Now, userId, userId);
}

var success = service.Save(dbSetting) != null;
_values = PopulateValues();

return success;

}

#endregion

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐