示例#1
0
        public void ReadConfiguration(string configurationString)
        {
            XmlDocument config = new XmlDocument();

            config.LoadXml(configurationString);
            XmlElement root = config.DocumentElement;

            Entries.Clear();
            foreach (XmlElement addressNode in root.SelectNodes("webServices/webService"))
            {
                DynamicWSCollectorConfigEntry webServicePingEntry = new DynamicWSCollectorConfigEntry();
                webServicePingEntry.ServiceBaseURL     = addressNode.ReadXmlElementAttr("url", "");
                webServicePingEntry.ServiceBindingName = addressNode.ReadXmlElementAttr("serviceBindingName", "");
                webServicePingEntry.MethodName         = addressNode.ReadXmlElementAttr("method");
                string parameterStr = addressNode.ReadXmlElementAttr("paramatersCSV");
                webServicePingEntry.Parameters = new List <string>();
                if (parameterStr.Trim().Length > 0)
                {
                    webServicePingEntry.Parameters.AddRange(parameterStr.Split(','));
                }
                webServicePingEntry.ResultIsSuccess         = addressNode.ReadXmlElementAttr("resultIsSuccess", true);
                webServicePingEntry.ValueExpectedReturnType = WebServiceValueExpectedReturnTypeConverter.FromString(addressNode.ReadXmlElementAttr("valueExpectedReturnType", ""));
                webServicePingEntry.MacroFormatType         = WebServiceMacroFormatTypeConverter.FromString(addressNode.ReadXmlElementAttr("macroFormatType", ""));
                webServicePingEntry.CheckValueArrayIndex    = addressNode.ReadXmlElementAttr("arrayIndex", 0);
                webServicePingEntry.CheckValueColumnIndex   = addressNode.ReadXmlElementAttr("columnIndex", 0);
                webServicePingEntry.CheckValueOrMacro       = addressNode.ReadXmlElementAttr("valueOrMacro", "");
                webServicePingEntry.UseRegEx = addressNode.ReadXmlElementAttr("useRegEx", false);
                Entries.Add(webServicePingEntry);
            }
        }
示例#2
0
        public void FromXml(string configurationString)
        {
            XmlDocument config = new XmlDocument();

            config.LoadXml(configurationString);
            XmlElement root = config.DocumentElement;

            Entries.Clear();
            foreach (XmlElement addressNode in root.SelectNodes("webServices/webService"))
            {
                WSCollectorConfigEntry webServicePingEntry = new WSCollectorConfigEntry();
                webServicePingEntry.ServiceBaseURL     = addressNode.ReadXmlElementAttr("url", "");
                webServicePingEntry.ServiceBindingName = addressNode.ReadXmlElementAttr("serviceBindingName", "");
                webServicePingEntry.MethodName         = addressNode.ReadXmlElementAttr("method");
                string parameterStr = addressNode.ReadXmlElementAttr("paramatersCSV");
                webServicePingEntry.Parameters = new List <string>();
                if (parameterStr.Trim().Length > 0)
                {
                    webServicePingEntry.Parameters.AddRange(parameterStr.Split(','));
                }
                //webServicePingEntry.ResultIsSuccess = addressNode.ReadXmlElementAttr("resultIsSuccess", true);
                webServicePingEntry.ValueExpectedReturnType = WebServiceValueExpectedReturnTypeConverter.FromString(addressNode.ReadXmlElementAttr("valueExpectedReturnType", ""));
                webServicePingEntry.MacroFormatType         = WebServiceMacroFormatTypeConverter.FromString(addressNode.ReadXmlElementAttr("macroFormatType", ""));
                webServicePingEntry.CheckValueArrayIndex    = addressNode.ReadXmlElementAttr("arrayIndex", 0);
                webServicePingEntry.CheckValueColumnIndex   = addressNode.ReadXmlElementAttr("columnIndex", 0);

                if (addressNode.ReadXmlElementAttr("resultIsSuccess", true))
                {
                    webServicePingEntry.ReturnCheckSequence = CollectorAgentReturnValueCheckSequence.GWE;
                }
                else
                {
                    webServicePingEntry.ReturnCheckSequence = CollectorAgentReturnValueCheckSequence.EWG;
                }

                webServicePingEntry.GoodResultMatchType = CollectorAgentReturnValueCompareMatchType.Contains;
                webServicePingEntry.GoodScriptText      = addressNode.ReadXmlElementAttr("valueOrMacro", "");
                if (webServicePingEntry.ValueExpectedReturnType == WebServiceValueExpectedReturnTypeEnum.CheckAvailabilityOnly)
                {
                    webServicePingEntry.GoodScriptText = "[Available]";
                }
                else if (addressNode.ReadXmlElementAttr("useRegEx", false))
                {
                    webServicePingEntry.GoodResultMatchType = CollectorAgentReturnValueCompareMatchType.RegEx;
                }
                else if (webServicePingEntry.GoodScriptText.StartsWith("[Between] "))
                {
                    webServicePingEntry.GoodResultMatchType = CollectorAgentReturnValueCompareMatchType.Between;
                    webServicePingEntry.GoodScriptText      = webServicePingEntry.GoodScriptText.Substring("[Between] ".Length);
                    webServicePingEntry.GoodScriptText      = webServicePingEntry.GoodScriptText.Replace("[and]", "and");
                }
                else if (webServicePingEntry.GoodScriptText.StartsWith("[LargerThan] "))
                {
                    webServicePingEntry.GoodResultMatchType = CollectorAgentReturnValueCompareMatchType.LargerThan;
                    webServicePingEntry.GoodScriptText      = webServicePingEntry.GoodScriptText.Substring("[LargerThan] ".Length);
                }
                else if (webServicePingEntry.GoodScriptText.StartsWith("[SmallerThan] "))
                {
                    webServicePingEntry.GoodResultMatchType = CollectorAgentReturnValueCompareMatchType.SmallerThan;
                    webServicePingEntry.GoodScriptText      = webServicePingEntry.GoodScriptText.Substring("[SmallerThan] ".Length);
                }
                else if (webServicePingEntry.GoodScriptText.StartsWith("[Contains] "))
                {
                    webServicePingEntry.GoodResultMatchType = CollectorAgentReturnValueCompareMatchType.Contains;
                    webServicePingEntry.GoodScriptText      = webServicePingEntry.GoodScriptText.Substring("[Contains] ".Length);
                }
                else if (webServicePingEntry.GoodScriptText.StartsWith("[BeginsWith] "))
                {
                    webServicePingEntry.GoodResultMatchType = CollectorAgentReturnValueCompareMatchType.StartsWith;
                    webServicePingEntry.GoodScriptText      = webServicePingEntry.GoodScriptText.Substring("[BeginsWith] ".Length);
                }
                else if (webServicePingEntry.GoodScriptText.StartsWith("[EndsWith] "))
                {
                    webServicePingEntry.GoodResultMatchType = CollectorAgentReturnValueCompareMatchType.EndsWith;
                    webServicePingEntry.GoodScriptText      = webServicePingEntry.GoodScriptText.Substring("[EndsWith] ".Length);
                }

                webServicePingEntry.WarningResultMatchType = CollectorAgentReturnValueCompareMatchType.Contains;
                webServicePingEntry.WarningScriptText      = "[null]";

                webServicePingEntry.ErrorResultMatchType = CollectorAgentReturnValueCompareMatchType.Contains;
                webServicePingEntry.ErrorScriptText      = "[any]";

                if (webServicePingEntry.ReturnCheckSequence == CollectorAgentReturnValueCheckSequence.EWG)
                {
                    CollectorAgentReturnValueCompareMatchType tmpMT = webServicePingEntry.GoodResultMatchType;
                    string tmpTestValue = webServicePingEntry.GoodScriptText;
                    webServicePingEntry.GoodResultMatchType  = webServicePingEntry.ErrorResultMatchType;
                    webServicePingEntry.GoodScriptText       = webServicePingEntry.ErrorScriptText;
                    webServicePingEntry.ErrorResultMatchType = tmpMT;
                    webServicePingEntry.ErrorScriptText      = tmpTestValue;
                }

                Entries.Add(webServicePingEntry);
            }
            foreach (XmlElement carvceEntryNode in root.SelectNodes("carvcesEntries/carvceEntry"))
            {
                WSCollectorConfigEntry webServicePingEntry = new WSCollectorConfigEntry();
                XmlNode dataSourceNode = carvceEntryNode.SelectSingleNode("dataSource");
                webServicePingEntry.ServiceBaseURL     = dataSourceNode.ReadXmlElementAttr("url", "");
                webServicePingEntry.ServiceBindingName = dataSourceNode.ReadXmlElementAttr("serviceBindingName", "");
                webServicePingEntry.MethodName         = dataSourceNode.ReadXmlElementAttr("method", "");
                string parameterStr = dataSourceNode.ReadXmlElementAttr("paramatersCSV", "");
                webServicePingEntry.Parameters = new List <string>();
                if (parameterStr.Trim().Length > 0)
                {
                    webServicePingEntry.Parameters.AddRange(parameterStr.Split(','));
                }
                webServicePingEntry.ValueExpectedReturnType = WebServiceValueExpectedReturnTypeConverter.FromString(dataSourceNode.ReadXmlElementAttr("valueExpectedReturnType", ""));
                webServicePingEntry.MacroFormatType         = WebServiceMacroFormatTypeConverter.FromString(dataSourceNode.ReadXmlElementAttr("macroFormatType", ""));
                webServicePingEntry.CheckValueArrayIndex    = dataSourceNode.ReadXmlElementAttr("arrayIndex", 0);
                webServicePingEntry.CheckValueColumnIndex   = dataSourceNode.ReadXmlElementAttr("columnIndex", 0);
                webServicePingEntry.PrimaryUIValue          = dataSourceNode.ReadXmlElementAttr("primaryUIValue", false);

                XmlNode testConditionsNode = carvceEntryNode.SelectSingleNode("testConditions");
                if (testConditionsNode != null)
                {
                    webServicePingEntry.ReturnCheckSequence = CollectorAgentReturnValueCompareEngine.CheckSequenceTypeFromString(testConditionsNode.ReadXmlElementAttr("testSequence", "gwe"));
                    XmlNode goodScriptNode = testConditionsNode.SelectSingleNode("success");
                    webServicePingEntry.GoodResultMatchType = CollectorAgentReturnValueCompareEngine.MatchTypeFromString(goodScriptNode.ReadXmlElementAttr("testType", "match"));
                    webServicePingEntry.GoodScriptText      = goodScriptNode.InnerText;
                    if (webServicePingEntry.ValueExpectedReturnType == WebServiceValueExpectedReturnTypeEnum.CheckAvailabilityOnly)
                    {
                        webServicePingEntry.GoodScriptText = "[Available]";
                    }

                    XmlNode warningScriptNode = testConditionsNode.SelectSingleNode("warning");
                    webServicePingEntry.WarningResultMatchType = CollectorAgentReturnValueCompareEngine.MatchTypeFromString(warningScriptNode.ReadXmlElementAttr("testType", "match"));
                    webServicePingEntry.WarningScriptText      = warningScriptNode.InnerText;

                    XmlNode errorScriptNode = testConditionsNode.SelectSingleNode("error");
                    webServicePingEntry.ErrorResultMatchType = CollectorAgentReturnValueCompareEngine.MatchTypeFromString(errorScriptNode.ReadXmlElementAttr("testType", "match"));
                    webServicePingEntry.ErrorScriptText      = errorScriptNode.InnerText;
                }
                else
                {
                    webServicePingEntry.ReturnCheckSequence = CollectorAgentReturnValueCheckSequence.GWE;
                }

                Entries.Add(webServicePingEntry);
            }
        }