Пример #1
0
 public IActionResult PostCertArchivo(int id, [FromForm] ArchivoCertificado archivos)
 {
     try
     {
         string mensaje            = "";
         var    certificadoService = new CertificadoService();
         if (!certificadoService.procesarArchivos(id, archivos))
         {
             mensaje = "Uno o mas archivos no fueron procesados correctamente";
         }
         else
         {
             mensaje = "Archivo(s) procesado(s) correctamente";
         }
         return(Ok(new { Message = mensaje }));
     }
     catch (Exception e)
     {
         if (e is InvalidCertificateExtensionType)
         {
             return(BadRequest(new { Message = e.Message }));
         }
         return(StatusCode(500, new { Message = "Error en el servidor" }));
     }
 }
Пример #2
0
        public IActionResult Delete(int id)
        {
            var certService = new CertificadoService();

            try
            {
                certService.EliminarCertificado(id);
                return(Ok());
            }
            catch
            {
                return(StatusCode(500, new { Message = "Error en el servidor" }));
            }
        }
Пример #3
0
        public IActionResult PutActivarCertificado(int id)
        {
            var certServ = new CertificadoService();

            try
            {
                certServ.ActivarCertificado(id);
                return(Ok());
            }
            catch (Exception e)
            {
                return(StatusCode(500, new { Message = "Error en el servidor" }));
            }
        }
Пример #4
0
        public IActionResult Put(int id, Certificado certificado)
        {
            var res      = new Dictionary <string, Object>();
            var certServ = new CertificadoService();

            try
            {
                certServ.actualizarCertificado(certificado);
                res.Add("certificado", certificado);
                return(Ok(res));
            }
            catch (Exception e)
            {
                return(StatusCode(500, new { Message = "Error en el servidor" }));
            }
        }
Пример #5
0
        public IActionResult Post(int id, Certificado certificado)
        {
            var res      = new Dictionary <string, Object>();
            var certServ = new CertificadoService();

            try
            {
                certServ.insertCertificado(certificado, id);
                res.Add("certificado", certificado);
                return(Ok(res));
            }
            catch (Exception e)
            {
                return(StatusCode(500, new { Message = e.Message }));
            }
        }
Пример #6
0
        public IActionResult Get(int id)
        {
            var res = new Dictionary <string, Object>();

            try
            {
                var certServ = new CertificadoService();
                res.Add("certificado", certServ.GetCertificado(id));
                return(Ok(res));
            }
            catch (Exception e)
            {
                if (e is NotFoundException)
                {
                    res.Add("message", e.Message);
                    return(NotFound(new { Message = e.Message }));
                }
                return(StatusCode(500, new { Message = "Error en el servidor" }));
            }
        }
Пример #7
0
        public IActionResult Get(int pagina, int rpp)
        {
            var res         = new Dictionary <string, Object>();
            var certService = new CertificadoService();

            try
            {
                res = certService.getCertificados(pagina, rpp);
                return(Ok(res));
            }
            catch (Exception e)
            {
                if (e is NotFoundException)
                {
                    res.Add("message", e.Message);
                    return(NotFound(res));
                }
                res.Add("message", "Error en el servidor");
                return(StatusCode(500, res));
            }
        }
        private List <RetornoNotaFiscal> ConsultarReciboLoteContingencia(string nRec, Modelo modelo)
        {
            var config = ConfiguracaoService.GetConfiguracao();
            X509Certificate2 certificado = null;

            var certificadoEntity = CertificadoService.GetCertificado();

            if (!string.IsNullOrWhiteSpace(certificadoEntity.Caminho))
            {
                certificado = CertificateManager.GetCertificateByPath(certificadoEntity.Caminho,
                                                                      RijndaelManagedEncryption.DecryptRijndael(certificadoEntity.Senha));
            }
            else
            {
                certificado = CertificateManager.GetCertificateBySerialNumber(certificadoEntity.NumeroSerial, false);
            }

            var consultaRecibo = new TConsReciNFe();

            consultaRecibo.versao = "4.00";
            consultaRecibo.tpAmb  = config.IsProducao ? XmlSchemas.NfeRetAutorizacao.Envio.TAmb.Item1 : XmlSchemas.NfeRetAutorizacao.Envio.TAmb.Item2;
            consultaRecibo.nRec   = nRec;

            string parametroXML = XmlUtil.Serialize(consultaRecibo, "http://www.portalfiscal.inf.br/nfe");

            var node = new XmlDocument();

            node.LoadXml(parametroXML);

            Ambiente ambiente = config.IsProducao ? Ambiente.Producao : Ambiente.Homologacao;
            var      codigoUF = (CodigoUfIbge)Enum.Parse(typeof(CodigoUfIbge), EmissorService.GetEmissor().Endereco.UF);

            try
            {
                var servico = ServiceFactory.GetService(modelo, ambiente, Factory.Servico.RetAutorizacao, codigoUF, certificado);
                var client  = (NFeRetAutorizacao4.NFeRetAutorizacao4SoapClient)servico.SoapClient;

                var result = client.nfeRetAutorizacaoLote(node);

                TRetConsReciNFe          retorno             = (TRetConsReciNFe)XmlUtil.Deserialize <TRetConsReciNFe>(result.OuterXml);
                List <RetornoNotaFiscal> retornoConsultaList = new List <RetornoNotaFiscal>();

                foreach (var protNFe in retorno.protNFe)
                {
                    var retornoConsultaNota = new RetornoNotaFiscal();

                    retornoConsultaNota.Chave           = protNFe.infProt.chNFe;
                    retornoConsultaNota.CodigoStatus    = protNFe.infProt.cStat;
                    retornoConsultaNota.DataAutorizacao = protNFe.infProt.dhRecbto;
                    retornoConsultaNota.Motivo          = protNFe.infProt.xMotivo;
                    retornoConsultaNota.Protocolo       = protNFe.infProt.nProt;
                    retornoConsultaNota.Xml             = XmlUtil.Serialize(protNFe, string.Empty)
                                                          .Replace("<?xml version=\"1.0\" encoding=\"utf-8\"?>", string.Empty)
                                                          .Replace("TProtNFe", "protNFe")
                                                          .Replace("<infProt xmlns=\"http://www.portalfiscal.inf.br/nfe\">", "<infProt>");

                    retornoConsultaList.Add(retornoConsultaNota);
                }

                return(retornoConsultaList);
            }
            catch (Exception)
            {
                if (!_isFirstTimeRecheckingRecipts)
                {
                    _isFirstTimeRecheckingRecipts = true;
                    return(ConsultarReciboLoteContingencia(nRec, modelo));
                }
                else
                {
                    _isFirstTimeRecheckingRecipts = false;
                    return(null);
                }
            }
        }