示例#1
0
        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);
            }
        }
示例#2
0
        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);
            }
        }