/// <summary> /// Salvar arquivo Xml /// </summary> private void SalvarArquivo(RetConsStat entity) { if (!_emisorEmissorServicoConfig.SalvarArquivoRetorno) { return; } //SalvarArquivo if (string.IsNullOrWhiteSpace(_emisorEmissorServicoConfig.DiretorioArquivoRetornoXml)) { throw new InvalidOperationException("Informe um diretório válido."); } var nomeArq = $"{DateTime.Now.ParaDataHoraString()}-ped-sta.xml"; var caminho = Path.Combine(_emisorEmissorServicoConfig.DiretorioArquivoRetornoXml, "Status", "Recebidos"); Utils.EscreverArquivo(caminho, nomeArq, entity.XmlRecebido); }
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); }