public static DateTime GetSettingAsDateTime(KrakenConfigLocation settingLocation, string settingKey) { switch (settingLocation) { case KrakenConfigLocation.AppSettings: return(GetAppSettingAsDateTime(settingKey)); //case KrakenConfigLocation.SystemSetting: // return GetDatabaseSettingAsDateTime(settingKey); default: throw KrakenException.Create("SettingLocation {0} not supported", settingLocation); } }
/// <summary> /// Helper to determine whether a feature is enabled or not yet. /// Enables deploys of in progress code when other components aren't ready yet - ie: Converga /// </summary> /// <remarks> /// Use some caching to prevent repeated database hits /// </remarks> public static bool IsFeatureActivated(KrakenConfigLocation settingLocation, string settingKey) { bool returnValue; lock (_featureActivationCache) { if (_featureActivationCache.ContainsKey(settingKey)) { returnValue = _featureActivationCache[settingKey]; } else { returnValue = GetDateFeatureActivated(settingLocation, settingKey) < SystemDate.Now; _featureActivationCache.Add(settingKey, returnValue); Log.Trace(m => m("Feature activation {0}={1}", settingKey, returnValue)); } } return(returnValue); }
/// <summary> /// Assumes the settingKey is in SystemSetting and /// </summary> public static DateTime GetDateFeatureActivated(KrakenConfigLocation settingLocation, string settingKey) { DateTime returnValue = DateTime.MaxValue; lock (_featureActivationDateCache) { if (_featureActivationDateCache.ContainsKey(settingKey)) { returnValue = _featureActivationDateCache[settingKey]; } else { returnValue = GetSettingAsDateTime(settingLocation, settingKey); _featureActivationDateCache.Add(settingKey, returnValue); Log.Trace(m => m("Feature activation (Date) {0}={1:yyyy-MMM-dd HH:mm:ss}", settingKey, returnValue)); } } return(returnValue); }