PI_Assync_SCDE/Application/SoapHelper.cs

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);
}
}
}
}