Example #1
0
        /// <summary>
        ///     Executar
        /// </summary>
        /// <returns></returns>
        public IRetConsRec 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();

            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("retConsReciNFe", resposta);
            var retorno1   = Utils.ConverterXMLParaClasse <retConsReciNFe>(node);
            var xmlEnviado = Utils.ObterStringXML(d1);

            _processadas++;
            if (retorno1.protNFe == null)
            {
                _rejeitadas++;
            }
            if (retorno1.protNFe != null)
            {
                if (StatusSefaz.ListarCodigo.All(n => retorno1.protNFe.All(m => m.infProt.All(k => k.cStat != n.Key))))
                {
                    _rejeitadas++;
                }
            }
            var retorno2 = new RetConsRec(retorno1, node, _processadas, _rejeitadas, xmlEnviado);

            //Salvar arquivo
            SalvarResposta(retorno2);
            return(retorno2);
        }
Example #2
0
        /// <summary>
        ///     Salvar arquivo Xml
        /// </summary>
        private void SalvarResposta(RetConsRec entity)
        {
            if (!_emisorEmissorServicoConfig.SalvarArquivoRetorno)
            {
                return;
            }
            //SalvarArquivo
            if (string.IsNullOrWhiteSpace(_emisorEmissorServicoConfig.DiretorioArquivoRetornoXml))
            {
                throw new InvalidOperationException("Informe um diretório válido.");
            }
            var nomeArq = $"{_numRecibo}-pro-rec.xml.xml";
            var caminho = Path.Combine(_emisorEmissorServicoConfig.DiretorioArquivoRetornoXml, "Recibos", "Recebidos");
            var xml     = Utils.ObterStringXML(entity);

            Utils.EscreverArquivo(caminho, nomeArq, entity.XmlRecebido);
        }