using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml.Linq; namespace Infra { public static class SoapHelper { public static void VerificarRespostaSOAP(string responseXml) { var doc = XDocument.Parse(responseXml); XNamespace env = "http://schemas.xmlsoap.org/soap/envelope/"; XNamespace tns = "http://xmlns.energia.org.br/FM/v2"; var fault = doc.Descendants(env + "Fault").FirstOrDefault(); if (fault != null) { string faultCode = fault.Element("faultcode")?.Value ?? ""; string faultString = fault.Element("faultstring")?.Value ?? ""; var detail = fault.Element("detail")?.Descendants().First(); string errorCode = detail?.Element(tns + "errorCode")?.Value ?? ""; string message = detail?.Element(tns + "message")?.Value ?? ""; throw new SoapFaultException(faultCode, faultString, errorCode, message); } } } }