public IRetInut Executar() { if (_servicoBase == null) { throw new InvalidOperationException("Uma instância do serviço base é requerido"); } if (_emisorEmissorServicoConfig == null) { throw new InvalidOperationException("Uma instância de configuração do emissor é requerido"); } var d1 = ObterDados(); _urlServico = ObterUrlServico(d1.infInut); _urlWsdlServico = ObterWsdlServico(); //Gerar Id GerarId(d1); //Validar regras de negocio ValidarRegra(d1); //Assinar Xml Assinar(d1); //Validar schemas ValidarSchema(d1); var soapXml = ObterCorpoMensagemSoap(_urlWsdlServico, d1); var ws = _servicoBase.ObterRequisicaoSoap(_urlServico, soapXml); var resposta = _servicoBase.ObterResposta(ws); //Obter Node var node = Utils.ObterNodeDeStringXml("retInutNFe", resposta); var retorno1 = Utils.ConverterXMLParaClasse <retInutNFe>(node); retorno1.cStat = retorno1.infInut.cStat; retorno1.dhResp = retorno1.infInut.dhRecbto; retorno1.tpAmb = retorno1.infInut.tpAmb; retorno1.verAplic = retorno1.infInut.verAplic; retorno1.xMotivo = retorno1.infInut.xMotivo; var xmlEnviado = Utils.ObterStringXML(d1); _processadas++; if (retorno1.infInut == null) { _rejeitadas++; } if (retorno1.infInut != null) { if (StatusSefaz.ListarCodigo.All(n => n.Key != retorno1.infInut.cStat)) { _rejeitadas++; } } var retorno2 = new RetInut(retorno1, node, _processadas, _rejeitadas, xmlEnviado); //Salvar arquivo SalvarArquivo(retorno2); return(retorno2); }
/// <summary> /// Processar envio e retorno da mensagem /// </summary> /// <param name="d1"></param> /// <returns></returns> private IRetAutorz ProcessarEnvioMensagem(enviNFe d1) { var soapXml = ObterCorpoMensagemSoap(_urlWsdlServico, d1); SalvarArquivoLoteEnviado(soapXml); var ws = _servicoBase.ObterRequisicaoSoap(_urlServico, soapXml); var resposta = _servicoBase.ObterResposta(ws); if (string.IsNullOrWhiteSpace(resposta)) { throw new InvalidOperationException("Não foi possível obter resposta a chamada do serviço"); } return(RetornoProcessamento(resposta, d1, _contingencia)); }
/// <summary> /// Executar /// </summary> /// <returns></returns> public IRetCancelar Executar() { if (_servicoBase == null) { throw new InvalidOperationException("Uma instância do serviço base é requerido"); } if (_emisorEmissorServicoConfig == null) { throw new InvalidOperationException("Uma instância de configuração do emissor é requerido"); } _urlServico = ObterUrlServico(); _urlWsdlServico = ObterWsdlServico(); var d1 = ObterDados(); //Assinar d1.evento.ForEach(Assinar); if (_emisorEmissorServicoConfig.ValidarSchema) { ValidarSchema(d1); } SalvarPedido(d1); var soapXml = ObterCorpoMensagemSoap(_urlWsdlServico, d1); var ws = _servicoBase.ObterRequisicaoSoap(_urlServico, soapXml); var resposta = _servicoBase.ObterResposta(ws); //Obter Node var node = Utils.ObterNodeDeStringXml("retEnvEvento", resposta); var retorno1 = Utils.ConverterXMLParaClasse <retEnvEvento>(node); var xmlEnviado = Utils.ObterStringXML(d1); _processadas++; if (retorno1.retEvento.Any(n => n.infEvento == null)) { _rejeitadas++; } if (retorno1.retEvento.Any(n => n.infEvento != null)) { if (StatusSefaz.ListarCodigo.All(n => retorno1.retEvento.All(k => k.infEvento.cStat != n.Key))) { _rejeitadas++; } } var retorno2 = new RetCancelar(retorno1, node, _processadas, _rejeitadas, xmlEnviado); //Salvar arquivo SalvarResposta(retorno2); return(retorno2); }
public IRetConsStat Executar() { if (_servicoBase == null) { throw new InvalidOperationException("Uma instância do serviço base é requerido"); } if (_emisorEmissorServicoConfig == null) { throw new InvalidOperationException("Uma instância de configuração do emissor é requerido"); } //Obter endereços _urlServico = ObterUrlServico(); _urlWsdlServico = ObterWsdlServico(); //Obter dados var d1 = ObterDados(); //Validar xml if (_emisorEmissorServicoConfig.ValidarSchema) { ValidarSchema(d1); } //Criar corpo SOAP var soapXml = ObterCorpoMensagemSoap(_urlWsdlServico, d1); var ws = _servicoBase.ObterRequisicaoSoap(_urlServico, soapXml); //Executar serviço var resposta = _servicoBase.ObterResposta(ws); //Obter Node var node = Utils.ObterNodeDeStringXml("retConsStatServ", resposta); var retorno1 = Utils.ConverterXMLParaClasse <retConsStatServ>(node); var xmlEnviado = Utils.ObterStringXML(d1); _processadas++; if (StatusSefaz.ListarCodigo.All(n => n.Key != retorno1.cStat)) { _rejeitadas++; } var retorno2 = new RetConsStat(retorno1, node, _processadas, _rejeitadas, xmlEnviado); //Salvar arquivo SalvarArquivo(retorno2); return(retorno2); }