Change Error Check to Look Deeper in XML

Not all failure responses follow the same pattern.  Some times the Error element is nested deeper in the response than where we were checking.  So I changed the search for an Error element to use Linq to Xml which makes it easier to search all descendant nodes.  Below is an example xml message we received after trying to add an RO that prompted the change.

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
  <soap:Header>
    <PayloadManifest xmlns="http://www.starstandards.org/webservices/2005/10/transport">
      <manifest contentID="64d42c44-8610-4d4d-bd80-f8474743c6cf" namespaceURI="" element="AddRepairOrder" />
    </PayloadManifest>
    <wsa:Action>http://www.starstandards.org/webservices/2005/10/transport/operations/ProcessMessageResponse</wsa:Action>
    <wsa:MessageID>urn:uuid:1b6a2f7f-d540-42c4-a147-cda61c2e67ad</wsa:MessageID>
    <wsa:RelatesTo>urn:uuid:0678502a-480d-4cef-a2e7-abd076f5680d</wsa:RelatesTo>
    <wsa:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:To>
    <wsse:Security>
      <wsu:Timestamp wsu:Id="Timestamp-3e62a4da-546e-4c14-9598-b46c5853654d">
        <wsu:Created>2014-04-21T19:49:27Z</wsu:Created>
        <wsu:Expires>2014-04-21T19:54:27Z</wsu:Expires>
      </wsu:Timestamp>
    </wsse:Security>
  </soap:Header>
  <soap:Body>
    <ProcessMessageResponse xmlns="http://www.starstandards.org/webservices/2005/10/transport">
      <payload>
        <content id="64d42c44-8610-4d4d-bd80-f8474743c6cf">
          <AddRepairOrderResponse xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="">
            <Failure>
              <Message>Repair Order failed to add.</Message>
              <Errors>
                <Error>
                  <Code>RO29</Code>
                  <Message>OdometerIn must be greater than last recorded vehicle mileage.</Message>
                </Error>
              </Errors>
            </Failure>
          </AddRepairOrderResponse>
        </content>
      </payload>
    </ProcessMessageResponse>
  </soap:Body>
</soap:Envelope>