public static AnalyticsConfiguration GetConfig(string analyticsEngineName) { string cacheKey = analyticsEngineName + "." + PortalSettings.Current.PortalId; var Config = new AnalyticsConfiguration(); Config.Rules = new AnalyticsRuleCollection(); Config.Settings = new AnalyticsSettingCollection(); FileStream fileReader = null; string filePath = ""; try { Config = (AnalyticsConfiguration)DataCache.GetCache(cacheKey); if ((Config == null)) { filePath = PortalSettings.Current.HomeDirectoryMapPath + "\\" + analyticsEngineName + ".config"; if (!File.Exists(filePath)) { return(null); } //Create a FileStream for the Config file fileReader = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read); var doc = new XPathDocument(fileReader); Config = new AnalyticsConfiguration(); Config.Rules = new AnalyticsRuleCollection(); Config.Settings = new AnalyticsSettingCollection(); var allSettings = new Hashtable(); foreach (XPathNavigator nav in doc.CreateNavigator().Select("AnalyticsConfig/Settings/AnalyticsSetting")) { var setting = new AnalyticsSetting(); setting.SettingName = nav.SelectSingleNode("SettingName").Value; setting.SettingValue = nav.SelectSingleNode("SettingValue").Value; Config.Settings.Add(setting); } foreach (XPathNavigator nav in doc.CreateNavigator().Select("AnalyticsConfig/Rules/AnalyticsRule")) { var rule = new AnalyticsRule(); rule.RoleId = Convert.ToInt32(nav.SelectSingleNode("RoleId").Value); rule.TabId = Convert.ToInt32(nav.SelectSingleNode("TabId").Value); rule.Label = nav.SelectSingleNode("Label").Value; var valueNode = nav.SelectSingleNode("Value"); if (valueNode != null) { rule.Value = valueNode.Value; } Config.Rules.Add(rule); } if (File.Exists(filePath)) { //Set back into Cache DataCache.SetCache(cacheKey, Config, new DNNCacheDependency(filePath)); } } } catch (Exception ex) { //log it var log = new LogInfo { LogTypeKey = EventLogController.EventLogType.ADMIN_ALERT.ToString() }; log.AddProperty("Analytics.AnalyticsConfiguration", "GetConfig Failed"); log.AddProperty("FilePath", filePath); log.AddProperty("ExceptionMessage", ex.Message); LogController.Instance.AddLog(log); Logger.Error(ex); } finally { if (fileReader != null) { //Close the Reader fileReader.Close(); } } return(Config); }
public void Add(AnalyticsRule r) { InnerList.Add(r); }
public static AnalyticsConfiguration GetConfig(string analyticsEngineName) { string cacheKey = analyticsEngineName + "." + PortalSettings.Current.PortalId; var Config = new AnalyticsConfiguration(); Config.Rules = new AnalyticsRuleCollection(); Config.Settings = new AnalyticsSettingCollection(); FileStream fileReader = null; string filePath = ""; try { Config = (AnalyticsConfiguration) DataCache.GetCache(cacheKey); if ((Config == null)) { filePath = PortalSettings.Current.HomeDirectoryMapPath + "\\" + analyticsEngineName + ".config"; if (!File.Exists(filePath)) { return null; } //Create a FileStream for the Config file fileReader = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read); var doc = new XPathDocument(fileReader); Config = new AnalyticsConfiguration(); Config.Rules = new AnalyticsRuleCollection(); Config.Settings = new AnalyticsSettingCollection(); var allSettings = new Hashtable(); foreach (XPathNavigator nav in doc.CreateNavigator().Select("AnalyticsConfig/Settings/AnalyticsSetting")) { var setting = new AnalyticsSetting(); setting.SettingName = nav.SelectSingleNode("SettingName").Value; setting.SettingValue = nav.SelectSingleNode("SettingValue").Value; Config.Settings.Add(setting); } foreach (XPathNavigator nav in doc.CreateNavigator().Select("AnalyticsConfig/Rules/AnalyticsRule")) { var rule = new AnalyticsRule(); rule.RoleId = Convert.ToInt32(nav.SelectSingleNode("RoleId").Value); rule.TabId = Convert.ToInt32(nav.SelectSingleNode("TabId").Value); rule.Label = nav.SelectSingleNode("Label").Value; var valueNode = nav.SelectSingleNode("Value"); if (valueNode != null) { rule.Value = valueNode.Value; } Config.Rules.Add(rule); } if (File.Exists(filePath)) { //Set back into Cache DataCache.SetCache(cacheKey, Config, new DNNCacheDependency(filePath)); } } } catch (Exception ex) { //log it var log = new LogInfo {LogTypeKey = EventLogController.EventLogType.ADMIN_ALERT.ToString()}; log.AddProperty("Analytics.AnalyticsConfiguration", "GetConfig Failed"); log.AddProperty("FilePath", filePath); log.AddProperty("ExceptionMessage", ex.Message); LogController.Instance.AddLog(log); Logger.Error(ex); } finally { if (fileReader != null) { //Close the Reader fileReader.Close(); } } return Config; }