public Resultado Executar(Config objConfig, XmlDocument XmlFila = null) { Resultado objResultado = new Resultado(); XmlDocument XmlRetorno = new XmlDocument(); XmlDocument XmlEntrada = new XmlDocument(); try { XmlEntrada.LoadXml(CriarSoapDeEntrada(objConfig, XmlFila == null ? null : XmlFila)); if (!string.IsNullOrEmpty(objConfig.ExecucaoInicial)) { List <object> lst = new List <object>(); lst.Add(XmlEntrada); lst.Add(objConfig); XmlEntrada = (XmlDocument) new Integrador.Utils.Generic.Invoke().Exec(objConfig.ExecucaoInicial.Split(';')[0], objConfig.ExecucaoInicial.Split(';')[1], lst, objConfig.ConnectionString); XmlDeEntradaParametros.Clear(); XmlDeEntradaParametros.Append(XmlEntrada.GetElementsByTagName(objConfig.Metodo)[0].InnerXml); } HttpWebRequest request = CriarWebRequest(objConfig); using (Stream stream = request.GetRequestStream()) { XmlEntrada.Save(stream); } try { using (WebResponse response = request.GetResponse()) { using (StreamReader rd = new StreamReader(response.GetResponseStream())) { string soapResult = rd.ReadToEnd(); XmlRetorno.LoadXml(soapResult); } } } catch (WebException webEx) { string errorText = "[Sem conteúdo de resposta]"; if (webEx != null && webEx.Response != null && webEx.Response.ContentLength > 0) { using (StreamReader rd = new StreamReader(webEx.Response.GetResponseStream())) { errorText = "Connection Status ** " + Monitor.Instance.GetStatus() + " ** Exception: ** " + webEx.Message + " ** Content: ** " + rd.ReadToEnd() + " **"; } } else { errorText = "Connection Status ** " + Monitor.Instance.GetStatus() + " ** Exception: ** " + webEx.Message + " ** Content: (no content)"; } throw new Exception(errorText); } catch (Exception e) { throw new Exception("Connection Status ** " + Monitor.Instance.GetStatus() + " ** Exception: ** " + e.Message + " ** ", e); } if (!string.IsNullOrEmpty(objConfig.ExecucaoFinal)) { List <object> lst = new List <object>(); lst.Add(XmlRetorno); lst.Add(XmlFila); XmlRetorno = (XmlDocument) new Integrador.Utils.Generic.Invoke().Exec(objConfig.ExecucaoFinal.Split(';')[0], objConfig.ExecucaoFinal.Split(';')[1], lst, objConfig.ConnectionString); } objResultado = new Resultado() { Mensagem = "WebService executado com sucesso.", ElementoSeparador = objConfig.ElementoSeparador, ParametrosEnvio = XmlDeEntradaParametros.ToString(), RespostaXmlCompleta = XmlRetorno, TipoMensagem = Resultado.Tipo.Sucesso }; } catch (Exception ex) { throw new Exception("\r\n\r\nXml de Erro:\r\n" + ex.Message, ex); } return(objResultado); }
public Resultado Executar(Config objConfig, string XmlFila) { Resultado objResultado = new Resultado(); try { XmlDocument doc = new XmlDocument(); doc.LoadXml(XmlFila); objResultado = Executar(objConfig, doc); } catch (Exception ex) { objResultado = new Resultado() { Mensagem = "XMLEntrada: \r\n" + XmlDeEntrada.ToString() + "\r\n" + ex.Message + " \r\n\r\n " + ex.StackTrace, ParametrosEnvio = XmlDeEntradaParametros.ToString(), TipoMensagem = Resultado.Tipo.Erro }; //ServiceLog.LogError(String.Format("Erro: Message: {0} - StackTrace: {1} - XmlEntrada: {2} \r\n\r\nINNER EXCEPTION:\r\n{3}", ex.Message, ex.StackTrace, XmlDeEntrada.ToString(), (ex.InnerException != null) ? ex.InnerException.Message : "(Sem mais informações)")); } return(objResultado); }