예제 #1
0
        private long GetCertificateIdFromCcite(int ccite)
        {
            var result = _certificadoService.Execute("GetCertificateIdFromCcite", new Certificado()
            {
                NoCcite = ccite
            }).ToList();

            if (result != null && result.Count() > 0)
            {
                return(result[0].IdCertificado);
            }

            return(0);
        }
예제 #2
0
        public async Task <IHttpActionResult> GetCertificate(CertificadoDto certificadoDto)
        {
            try
            {
                mySource.TraceInformation($"Inicio acción GetCertificate {JsonConvert.SerializeObject(certificadoDto)}");

                List <Certificado> certificados = new List <Certificado>();

                List <Sustancia> sustancias = new List <Sustancia>();

                var userid = "";

                var token = GetToken();

                mySource.TraceInformation($"Validando Token {token}");

                var resultValidation = ValidateToken(token, ref userid);

                if (!resultValidation)
                {
                    mySource.TraceEvent(TraceEventType.Information, 3, $"Token invalido {token}");  throw new Exception("Token invalido");
                }

                mySource.TraceInformation($"Consultando certificado {JsonConvert.SerializeObject(certificadoDto)}");

                if ((string.IsNullOrEmpty(certificadoDto.Codigo.ToString()) || certificadoDto.Codigo == 0) && !string.IsNullOrEmpty(certificadoDto.CodigoQr))
                {
                    certificados = _certificadoService.Execute("ConsultaInformacionGeneralCcitePorQr", new Certificado()
                    {
                        CodigoSeguridad = certificadoDto.CodigoQr
                    }).ToList();
                }
                else
                {
                    certificados = _certificadoService.Execute("ConsultaInformacionGeneralCcite", new Certificado()
                    {
                        NoCcite = certificadoDto.Codigo
                    }).ToList();
                }

                mySource.TraceInformation($"Certificado obtenido {JsonConvert.SerializeObject(certificados)}");

                if (certificados == null || certificados.Count <= 0)
                {
                    return(NotFound());
                }

                mySource.TraceInformation($"Consultando sustancias ");

                if ((string.IsNullOrEmpty(certificadoDto.Codigo.ToString()) || certificadoDto.Codigo == 0) && !string.IsNullOrEmpty(certificadoDto.CodigoQr))
                {
                    sustancias = _sustanciaService.Execute("ConsultaSustanciasCcitePorQr", new Sustancia()
                    {
                        CodigoSeguridad = certificadoDto.CodigoQr
                    }).ToList();
                }
                else
                {
                    sustancias = _sustanciaService.Execute("ConsultaSustanciasCcite", new Sustancia()
                    {
                        NoCcite = certificadoDto.Codigo
                    }).ToList();
                }

                mySource.TraceInformation($"sustancias obtenidas {JsonConvert.SerializeObject(sustancias)}");

                certificadoDto.Certificado = new Certificado()
                {
                    NoCcite           = certificados[0].NoCcite,
                    NombreEmpresa     = certificados[0].NombreEmpresa.Trim(),
                    DocumentoEmpresa  = certificados[0].DocumentoEmpresa.Trim(),
                    FechaExpedicion   = certificados[0].FechaExpedicion,
                    FechaVencimiento  = certificados[0].FechaVencimiento,
                    EstadoCertificado = certificados[0].EstadoCertificado,
                    Periodicidad      = certificados[0].Periodicidad,
                    CodigoSeguridad   = certificados[0].CodigoSeguridad
                };

                certificadoDto.Sustancias = sustancias;

                long idCertificado = 0;
                if ((string.IsNullOrEmpty(certificadoDto.Codigo.ToString()) || certificadoDto.Codigo == 0) && !string.IsNullOrEmpty(certificadoDto.CodigoQr))
                {
                    idCertificado = GetCertificateIdFromCcitePorQr(certificadoDto.CodigoQr);
                }
                else
                {
                    idCertificado = GetCertificateIdFromCcite(certificadoDto.Codigo);
                }


                if (idCertificado == 0)
                {
                    throw new Exception("Certificado no encontrado");
                }

                var logId = _logConsultaService.Create(new LogConsulta()
                {
                    IdCertificado = idCertificado, IdUsuario = userid, Latitude = certificadoDto.Location.Latitude, Longitude = certificadoDto.Location.Longitude
                });

                certificadoDto.IdConsulta = Convert.ToInt64(logId);

                mySource.TraceEvent(TraceEventType.Information, 10, $"Retorno {JsonConvert.SerializeObject(certificadoDto)}");

                return(Ok(certificadoDto));
            }
            catch (Exception ex)
            {
                mySource.TraceEvent(TraceEventType.Error, 99, ex.Message);
                return(Content(HttpStatusCode.BadRequest, ex.Message));
            }
            finally
            {
                mySource.Flush();
            }
        }