28 lines
1003 B
C#
28 lines
1003 B
C#
using System.Xml.Linq;
|
|
|
|
namespace Application
|
|
{
|
|
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);
|
|
}
|
|
}
|
|
}
|
|
}
|