Exemplo n.º 1
0
        public static Task <ResultDocument> ProcessWithDocument(string xmlMessage)
        {
            return(Task.Factory.StartNew(
                       () =>
            {
                var result = new ResultDocument();
                result.Header = new XmlDocument();
                result.Body = new XmlDocument();
                var doc = new XmlDocument();

                result.StartingTime = DateTime.Now;
                doc.LoadXml(xmlMessage);
                result.EndingTime = DateTime.Now;

                result.Header.InnerXml = doc.DocumentElement.GetElementsByTagName("soap:Header")[0]?.OuterXml;
                result.Body.InnerXml = doc.DocumentElement.GetElementsByTagName("soap:Body")[0]?.OuterXml;

                using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(xmlMessage)))
                {
                    result.Size = ms.Length;
                }

                result.DifferenceTime = result.EndingTime.Subtract(result.StartingTime).ToString();

                return result;
            }
                       ));
        }
Exemplo n.º 2
0
        private static void ValidateWsaAddressing(ResultDocument result)
        {
            if (result.Header != null)
            {
                if (result.Header.GetElementsByTagName("wsa:To") != null && result.Header.GetElementsByTagName("wsa:To").Count > 0)
                {
                    result.WsaTo = result.Header.GetElementsByTagName("wsa:To")[0].InnerText;
                }

                if (result.Header.GetElementsByTagName("wsa:MessageID") != null && result.Header.GetElementsByTagName("wsa:MessageID").Count > 0)
                {
                    result.MessageID = result.Header.GetElementsByTagName("wsa:MessageID")[0].InnerText;
                }

                if (result.Header.GetElementsByTagName("wsa:From") != null && result.Header.GetElementsByTagName("wsa:From").Count > 0)
                {
                    result.WsaFrom = result.Header.GetElementsByTagName("wsa:From")[0].InnerText;
                }

                if (result.Header.GetElementsByTagName("wsa:Action") != null && result.Header.GetElementsByTagName("wsa:Action").Count > 0)
                {
                    result.WsaAction = result.Header.GetElementsByTagName("wsa:Action")[0].InnerText;
                }

                if (result.Header.GetElementsByTagName("wsa:ReplyTo") != null && result.Header.GetElementsByTagName("wsa:ReplyTo").Count > 0)
                {
                    result.WsaReplyTo = result.Header.GetElementsByTagName("wsa:ReplyTo")[0].InnerText;
                }

                if (result.Header.GetElementsByTagName("wsa:RelatesTo") != null && result.Header.GetElementsByTagName("wsa:RelatesTo").Count > 0)
                {
                    result.WsaRelatesTo = result.Header.GetElementsByTagName("wsa:RelatesTo")[0].InnerText;
                }

                if (result.Header.GetElementsByTagName("wsa:FaultTo") != null && result.Header.GetElementsByTagName("wsa:FaultTo").Count > 0)
                {
                    result.WsaFaultTo = result.Header.GetElementsByTagName("wsa:FaultTo")[0].InnerText;
                }

                if (result.Header.GetElementsByTagName("wsa:AcceptFaultTo") != null && result.Header.GetElementsByTagName("wsa:AcceptFaultTo").Count > 0)
                {
                    result.WsaAcceptFaultTo = result.Header.GetElementsByTagName("wsa:AcceptFaultTo")[0].InnerText;
                }

                if (result.Header.GetElementsByTagName("wsa:RetryMessages") != null && result.Header.GetElementsByTagName("wsa:RetryMessages").Count > 0)
                {
                    result.WsaRetryMessages = result.Header.GetElementsByTagName("wsa:RetryMessages")[0].InnerText;
                }
            }
        }