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:
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 }
相关文章推荐
- Using Timer to get history values from EDNA database, an error is prompted in the page : "Sys.WebForms.PageRequestManagerTimeout
- Xmanager Failed to get the installation date from the system registry
- Xmanager Failed to get the installation date from the system registry的解决方法
- Xmanager Failed to get the installation date from the system registry
- How to save or get Images through Database.
- Xmanager Failed to get the installation date from the system registry
- 类型“System.Web.UI.ScriptManager”的方法“get_EnableCdn”没有实现
- How do I upload or download XML to/from a database
- Get Database Connection from Web Application Server Data Source
- Get Data from Database without definited Structure
- failed to get the installation date from the system registy
- populate a listbox on winform with values from database
- How to get IBA values from a soft typed object
- How to Read XMLDocument into a SQL Sever XML field / saving XML to database or filesystem...best method?
- Import Data from Txt or CSV files into MYSQL database tables
- 使用PHPExcel 时报错ZipArchive::getFromName(): Invalid or uninitialized Zip object
- #160 – Be Careful When Setting Dependency Property Values from a DependencyObject Constructor
- Xmanager Failed to get the installation date from the system registry
- Liferay get Organization by using User or get All Organizations in liferay database
- ERROR manager.SqlManager: Error reading from database: java.sql.SQLException: Streaming result set