diff --git a/Program.cs b/Program.cs index 3a7464b..9d10e5b 100644 --- a/Program.cs +++ b/Program.cs @@ -398,11 +398,24 @@ internal class Plat_integ } } - int rowsAffected = await cmdUpdate.ExecuteNonQueryAsync(); + 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"; - if (rowsAffected == 1) + var fault = doc.Descendants(env + "Fault").FirstOrDefault(); + if (fault != null) { - Console.WriteLine("atualizado"); + 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); + } } public class RateLimiter