Exemplo n.º 1
0
        public static Task <ResultReader> ProcessWithReader(string xmlMessage)
        {
            return(Task.Factory.StartNew(
                       () =>
            {
                var result = new ResultReader();

                using (var reader = XmlReader.Create(new StringReader(xmlMessage)))
                {
                    result.StartingTime = DateTime.Now;
                    while (reader.Read() && (string.IsNullOrEmpty(result.Header) || string.IsNullOrEmpty(result.Body)))
                    {
                        if (reader.IsStartElement())
                        {
                            if (reader.Name == "soap:Header")
                            {
                                result.Header = reader.ReadOuterXml();
                            }

                            if (reader.Name == "soap:Body")
                            {
                                result.Body = reader.ReadOuterXml();
                            }
                        }
                    }
                    result.EndingTime = DateTime.Now;
                }

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

                return result;
            }
                       ));
        }
Exemplo n.º 2
0
 private static void ValidateWsaAddressing(ResultReader result)
 {
     if (!string.IsNullOrEmpty(result.Header))
     {
         using (var reader = XmlReader.Create(new StringReader(result.Header)))
         {
             while (reader.Read())
             {
                 if (reader.IsStartElement())
                 {
                     if (reader.Name == "wsa:To")
                     {
                         result.WsaTo = reader.Value;
                     }
                     else if (reader.Name == "wsa:MessageID")
                     {
                         result.MessageID = reader.Value;
                     }
                     else if (reader.Name == "wsa:From")
                     {
                         result.WsaFrom = reader.Value;
                     }
                     else if (reader.Name == "wsa:Action")
                     {
                         result.WsaAction = reader.Value;
                     }
                     else if (reader.Name == "wsa:ReplyTo")
                     {
                         result.WsaReplyTo = reader.Value;
                     }
                     else if (reader.Name == "wsa:RelatesTo")
                     {
                         result.WsaRelatesTo = reader.Value;
                     }
                     else if (reader.Name == "wsa:FaultTo")
                     {
                         result.WsaFaultTo = reader.Value;
                     }
                     else if (reader.Name == "wsa:AcceptFaultTo")
                     {
                         result.WsaAcceptFaultTo = reader.Value;
                     }
                     else if (reader.Name == "wsa:RetryMessages")
                     {
                         result.WsaRetryMessages = reader.Value;
                     }
                 }
             }
         }
     }
 }