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); }
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(); } }