public void FromXml(string configurationString) { XmlDocument config = new XmlDocument(); config.LoadXml(configurationString); Entries.Clear(); XmlElement root = config.DocumentElement; foreach (XmlElement queryNode in root.SelectNodes("queries/query")) { SqlQueryCollectorEntry queryEntry = new SqlQueryCollectorEntry(); queryEntry.Name = queryNode.ReadXmlElementAttr("name", ""); queryEntry.DataSourceType = queryNode.ReadXmlElementAttr("dataSourceType", "SqlServer").ToLower() == "oledb" ? DataSourceType.OLEDB : DataSourceType.SqlServer; queryEntry.ConnectionString = queryNode.ReadXmlElementAttr("connStr", ""); queryEntry.ProviderName = queryNode.ReadXmlElementAttr("provider", ""); queryEntry.FileName = queryNode.ReadXmlElementAttr("fileName", ""); queryEntry.Server = queryNode.ReadXmlElementAttr("server", ""); queryEntry.Database = queryNode.ReadXmlElementAttr("database", ""); queryEntry.IntegratedSecurity = bool.Parse(queryNode.ReadXmlElementAttr("integratedSec", "True")); queryEntry.UserName = queryNode.ReadXmlElementAttr("userName", ""); queryEntry.Password = queryNode.ReadXmlElementAttr("password", ""); queryEntry.CmndTimeOut = int.Parse(queryNode.ReadXmlElementAttr("cmndTimeOut", "60")); queryEntry.UsePersistentConnection = bool.Parse(queryNode.ReadXmlElementAttr("usePersistentConnection", "False")); queryEntry.ApplicationName = queryNode.ReadXmlElementAttr("applicationName", "QuickMon"); XmlNode alertTriggersNode = queryNode.SelectSingleNode("alertTriggers"); queryEntry.ValueReturnType = DataBaseQueryValueReturnTypeConverter.FromString(alertTriggersNode.ReadXmlElementAttr("valueReturnType", "RawValue")); queryEntry.ValueReturnCheckSequence = CollectorAgentReturnValueCompareEngine.CheckSequenceTypeFromString(alertTriggersNode.ReadXmlElementAttr("checkSequence", "EWG")); XmlNode successNode = alertTriggersNode.SelectSingleNode("success"); queryEntry.SuccessMatchType = CollectorAgentReturnValueCompareEngine.MatchTypeFromString(successNode.ReadXmlElementAttr("matchType", "Match")); queryEntry.SuccessValueOrMacro = successNode.ReadXmlElementAttr("value", "[any]"); XmlNode warningNode = alertTriggersNode.SelectSingleNode("warning"); queryEntry.WarningMatchType = CollectorAgentReturnValueCompareEngine.MatchTypeFromString(warningNode.ReadXmlElementAttr("matchType", "Match")); queryEntry.WarningValueOrMacro = warningNode.ReadXmlElementAttr("value", "0"); XmlNode errorNode = alertTriggersNode.SelectSingleNode("error"); queryEntry.ErrorMatchType = CollectorAgentReturnValueCompareEngine.MatchTypeFromString(errorNode.ReadXmlElementAttr("matchType", "Match")); queryEntry.ErrorValueOrMacro = errorNode.ReadXmlElementAttr("value", "[null]"); XmlNode stateQueryNode = queryNode.SelectSingleNode("stateQuery"); queryEntry.UseSPForStateQuery = stateQueryNode.ReadXmlElementAttr("useSP", false); queryEntry.StateQuery = stateQueryNode.InnerText; XmlNode detailQueryNode = queryNode.SelectSingleNode("detailQuery"); queryEntry.UseSPForDetailQuery = detailQueryNode.ReadXmlElementAttr("useSP", false); queryEntry.DetailQuery = detailQueryNode.InnerText; Entries.Add(queryEntry); } }
public void FromXml(string configurationString) { XmlDocument config = new XmlDocument(); config.LoadXml(configurationString); Entries.Clear(); XmlElement root = config.DocumentElement; //Version 4 config foreach (XmlElement queryNode in root.SelectNodes("queries/query")) { SqlQueryCollectorEntry queryEntry = new SqlQueryCollectorEntry(); queryEntry.Name = queryNode.ReadXmlElementAttr("name", ""); queryEntry.DataSourceType = queryNode.ReadXmlElementAttr("dataSourceType", "SqlServer").ToLower() == "oledb" ? DataSourceType.OLEDB : DataSourceType.SqlServer; queryEntry.ConnectionString = queryNode.ReadXmlElementAttr("connStr", ""); queryEntry.ProviderName = queryNode.ReadXmlElementAttr("provider", ""); queryEntry.FileName = queryNode.ReadXmlElementAttr("fileName", ""); queryEntry.Server = queryNode.ReadXmlElementAttr("server", ""); queryEntry.Database = queryNode.ReadXmlElementAttr("database", ""); queryEntry.IntegratedSecurity = bool.Parse(queryNode.ReadXmlElementAttr("integratedSec", "True")); queryEntry.UserName = queryNode.ReadXmlElementAttr("userName", ""); queryEntry.Password = queryNode.ReadXmlElementAttr("password", ""); queryEntry.CmndTimeOut = int.Parse(queryNode.ReadXmlElementAttr("cmndTimeOut", "60")); queryEntry.UsePersistentConnection = bool.Parse(queryNode.ReadXmlElementAttr("usePersistentConnection", "False")); queryEntry.ApplicationName = queryNode.ReadXmlElementAttr("applicationName", "QuickMon"); queryEntry.PrimaryUIValue = queryNode.ReadXmlElementAttr("primaryUIValue", false); XmlNode alertTriggersNode = queryNode.SelectSingleNode("alertTriggers"); queryEntry.ValueReturnType = DataBaseQueryValueReturnTypeConverter.FromString(alertTriggersNode.ReadXmlElementAttr("valueReturnType", "RawValue")); queryEntry.ReturnCheckSequence = CollectorAgentReturnValueCompareEngine.CheckSequenceTypeFromString(alertTriggersNode.ReadXmlElementAttr("checkSequence", "EWG")); XmlNode successNode = alertTriggersNode.SelectSingleNode("success"); queryEntry.GoodResultMatchType = CollectorAgentReturnValueCompareEngine.MatchTypeFromString(successNode.ReadXmlElementAttr("matchType", "Match")); queryEntry.GoodValue = successNode.ReadXmlElementAttr("value", "[any]"); XmlNode warningNode = alertTriggersNode.SelectSingleNode("warning"); queryEntry.WarningResultMatchType = CollectorAgentReturnValueCompareEngine.MatchTypeFromString(warningNode.ReadXmlElementAttr("matchType", "Match")); queryEntry.WarningValue = warningNode.ReadXmlElementAttr("value", "0"); XmlNode errorNode = alertTriggersNode.SelectSingleNode("error"); queryEntry.ErrorResultMatchType = CollectorAgentReturnValueCompareEngine.MatchTypeFromString(errorNode.ReadXmlElementAttr("matchType", "Match")); queryEntry.ErrorValue = errorNode.ReadXmlElementAttr("value", "[null]"); XmlNode stateQueryNode = queryNode.SelectSingleNode("stateQuery"); queryEntry.UseSPForStateQuery = stateQueryNode.ReadXmlElementAttr("useSP", false); queryEntry.StateQuery = stateQueryNode.InnerText; //XmlNode detailQueryNode = queryNode.SelectSingleNode("detailQuery"); //queryEntry.UseSPForDetailQuery = detailQueryNode.ReadXmlElementAttr("useSP", false); //queryEntry.DetailQuery = detailQueryNode.InnerText; Entries.Add(queryEntry); } //version 5 config foreach (XmlElement carvceEntryNode in root.SelectNodes("carvcesEntries/carvceEntry")) { XmlNode dataSourceNode = carvceEntryNode.SelectSingleNode("dataSource"); SqlQueryCollectorEntry queryEntry = new SqlQueryCollectorEntry(); queryEntry.Name = dataSourceNode.ReadXmlElementAttr("name", ""); queryEntry.DataSourceType = dataSourceNode.ReadXmlElementAttr("dataSourceType", "SqlServer").ToLower() == "oledb" ? DataSourceType.OLEDB : DataSourceType.SqlServer; queryEntry.ConnectionString = dataSourceNode.ReadXmlElementAttr("connStr", ""); queryEntry.ProviderName = dataSourceNode.ReadXmlElementAttr("provider", ""); queryEntry.FileName = dataSourceNode.ReadXmlElementAttr("fileName", ""); queryEntry.Server = dataSourceNode.ReadXmlElementAttr("server", ""); queryEntry.Database = dataSourceNode.ReadXmlElementAttr("database", ""); queryEntry.IntegratedSecurity = bool.Parse(dataSourceNode.ReadXmlElementAttr("integratedSec", "True")); queryEntry.UserName = dataSourceNode.ReadXmlElementAttr("userName", ""); queryEntry.Password = dataSourceNode.ReadXmlElementAttr("password", ""); queryEntry.CmndTimeOut = int.Parse(dataSourceNode.ReadXmlElementAttr("cmndTimeOut", "60")); queryEntry.UsePersistentConnection = bool.Parse(dataSourceNode.ReadXmlElementAttr("usePersistentConnection", "False")); queryEntry.ApplicationName = dataSourceNode.ReadXmlElementAttr("applicationName", "QuickMon"); queryEntry.PrimaryUIValue = dataSourceNode.ReadXmlElementAttr("primaryUIValue", false); queryEntry.OutputValueUnit = dataSourceNode.ReadXmlElementAttr("outputValueUnit", ""); XmlNode stateQueryNode = dataSourceNode.SelectSingleNode("stateQuery"); queryEntry.UseSPForStateQuery = stateQueryNode.ReadXmlElementAttr("useSP", false); queryEntry.StateQuery = stateQueryNode.InnerText; //XmlNode detailQueryNode = dataSourceNode.SelectSingleNode("detailQuery"); //queryEntry.UseSPForDetailQuery = detailQueryNode.ReadXmlElementAttr("useSP", false); //queryEntry.DetailQuery = detailQueryNode.InnerText; XmlNode testConditionsNode = carvceEntryNode.SelectSingleNode("testConditions"); if (testConditionsNode != null) { queryEntry.ReturnCheckSequence = CollectorAgentReturnValueCompareEngine.CheckSequenceTypeFromString(testConditionsNode.ReadXmlElementAttr("testSequence", "gwe")); queryEntry.ValueReturnType = DataBaseQueryValueReturnTypeConverter.FromString(testConditionsNode.ReadXmlElementAttr("valueReturnType", "RawValue")); XmlNode goodScriptNode = testConditionsNode.SelectSingleNode("success"); queryEntry.GoodResultMatchType = CollectorAgentReturnValueCompareEngine.MatchTypeFromString(goodScriptNode.ReadXmlElementAttr("testType", "match")); queryEntry.GoodValue = goodScriptNode.InnerText; XmlNode warningScriptNode = testConditionsNode.SelectSingleNode("warning"); queryEntry.WarningResultMatchType = CollectorAgentReturnValueCompareEngine.MatchTypeFromString(warningScriptNode.ReadXmlElementAttr("testType", "match")); queryEntry.WarningValue = warningScriptNode.InnerText; XmlNode errorScriptNode = testConditionsNode.SelectSingleNode("error"); queryEntry.ErrorResultMatchType = CollectorAgentReturnValueCompareEngine.MatchTypeFromString(errorScriptNode.ReadXmlElementAttr("testType", "match")); queryEntry.ErrorValue = errorScriptNode.InnerText; } else { queryEntry.ReturnCheckSequence = CollectorAgentReturnValueCheckSequence.GWE; queryEntry.ValueReturnType = DataBaseQueryValueReturnType.RawValue; } Entries.Add(queryEntry); } }