/// <summary> /// Realiza la adaptación de campos para registrar o actualizar /// </summary> /// <param name="data"></param> /// <returns>Indicador con el resultado de la operación</returns> public static ProcesoAuditoriaEntity RegistrarFlujoAuditoria(ProcesoAuditoriaRequest data) { ProcesoAuditoriaEntity procesoAuditoriaEntity = new ProcesoAuditoriaEntity(); if (data.CodigoAuditoria != null) { procesoAuditoriaEntity.CodigoAuditoria = new Guid(data.CodigoAuditoria); } else { Guid code; code = Guid.NewGuid(); procesoAuditoriaEntity.CodigoAuditoria = code; } procesoAuditoriaEntity.CodigoUnidadOperativa = new Guid(data.CodigoUnidadOperativa); if (!string.IsNullOrWhiteSpace(data.FechaPlanificadaString)) { procesoAuditoriaEntity.FechaPlanificada = DateTime.ParseExact(data.FechaPlanificadaString, DatosConstantes.Formato.FormatoFecha, System.Globalization.CultureInfo.InvariantCulture); } if (!string.IsNullOrWhiteSpace(data.FechaEjecucionString)) { procesoAuditoriaEntity.FechaEjecucion = DateTime.ParseExact(data.FechaEjecucionString, DatosConstantes.Formato.FormatoFecha, System.Globalization.CultureInfo.InvariantCulture); } else { procesoAuditoriaEntity.FechaEjecucion = null; } procesoAuditoriaEntity.CantidadAuditadas = data.CantidadAuditadas; procesoAuditoriaEntity.CantidadObservadas = data.CantidadObservadas; procesoAuditoriaEntity.ResultadoAuditoria = data.ResultadoAuditoria; return(procesoAuditoriaEntity); }
/// <summary> /// Registra o Actualiza un Proceso Auditoria /// </summary> /// <param name="data">Datos a registrar</param> /// <returns>Identificador de registro</returns> public ProcessResult <ProcesoAuditoriaRequest> RegistrarProcesoAuditoria(ProcesoAuditoriaRequest data) { ProcessResult <ProcesoAuditoriaRequest> resultado = new ProcessResult <ProcesoAuditoriaRequest>(); try { ProcesoAuditoriaEntity entidad = ProcesoAuditoriaAdapter.RegistrarFlujoAuditoria(data); DateTime fechaPlanificada = entidad.FechaPlanificada; DateTime?fechaEjecucion = entidad.FechaEjecucion; if (fechaPlanificada > fechaEjecucion) { resultado.IsSuccess = false; resultado.Exception = new ApplicationLayerException <ProcesoAuditoriaService>("El campo Fecha Planificada debe ser menor a la Fecha Ejecución"); } else { Guid codigoUnidadOperativa = new Guid(data.CodigoUnidadOperativa); var resultadoRepetido = procesoAuditoriaLogicRepository.RepiteProcesoAuditoria( codigoUnidadOperativa, entidad.FechaPlanificada ); bool existeRepetido = resultadoRepetido.Any(e => e.CodigoAuditoria != entidad.CodigoAuditoria); if (existeRepetido) { resultado.IsSuccess = false; resultado.Exception = new ApplicationLayerException <ProcesoAuditoriaService>(MensajesSistema.ProcesoAuditoriaExiste); } else { if (data.CodigoAuditoria == null) { procesoAuditoriaEntityRepository.Insertar(entidad); } else { var entidadSincronizar = procesoAuditoriaEntityRepository.GetById(entidad.CodigoAuditoria); entidadSincronizar.CodigoUnidadOperativa = entidad.CodigoUnidadOperativa; entidadSincronizar.FechaPlanificada = entidad.FechaPlanificada; entidadSincronizar.FechaEjecucion = entidad.FechaEjecucion; entidadSincronizar.CantidadAuditadas = entidad.CantidadAuditadas; entidadSincronizar.CantidadObservadas = entidad.CantidadObservadas; entidadSincronizar.ResultadoAuditoria = entidad.ResultadoAuditoria; procesoAuditoriaEntityRepository.Editar(entidadSincronizar); } procesoAuditoriaEntityRepository.GuardarCambios(); } } } catch (Exception e) { resultado.IsSuccess = false; resultado.Exception = new ApplicationLayerException <ProcesoAuditoriaService>(e); } return(resultado); }
/// <summary> /// Busca Procesos de Auditoria /// </summary> /// <param name="filtro"></param> /// <returns>Procesos de Auditoria</returns> public ProcessResult <List <ProcesoAuditoriaResponse> > BuscarBandejaProcesoAuditoria(ProcesoAuditoriaRequest filtro) { ProcessResult <List <ProcesoAuditoriaResponse> > resultado = new ProcessResult <List <ProcesoAuditoriaResponse> >(); var unidadOperativa = unidadOperativaService.BuscarUnidadOperativa(new FiltroUnidadOperativa() { Nivel = "03" }); try { Guid?codigoAuditoria = (filtro.CodigoAuditoria != null && filtro.CodigoAuditoria != "") ? new Guid(filtro.CodigoAuditoria) : (Guid?)null; Guid?codigoUnidadOperativa = (filtro.CodigoUnidadOperativa != null && filtro.CodigoUnidadOperativa != "") ? new Guid(filtro.CodigoUnidadOperativa) : (Guid?)null; DateTime?fechaPlanificada = null; DateTime?fechaEjecucion = null; if (!string.IsNullOrWhiteSpace(filtro.FechaPlanificadaString)) { fechaPlanificada = DateTime.ParseExact(filtro.FechaPlanificadaString, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);; } else { fechaPlanificada = filtro.FechaPlanificada; } if (!string.IsNullOrWhiteSpace(filtro.FechaEjecucionString)) { fechaEjecucion = DateTime.ParseExact(filtro.FechaEjecucionString, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);; } else { fechaEjecucion = filtro.FechaEjecucion; } List <ProcesoAuditoriaLogic> listado = procesoAuditoriaLogicRepository.BuscarBandejaProcesoAuditoria( codigoAuditoria, codigoUnidadOperativa, fechaPlanificada, fechaEjecucion, filtro.EstadoRegistro ); resultado.Result = new List <ProcesoAuditoriaResponse>(); foreach (var registro in listado) { var procesoAuditoria = ProcesoAuditoriaAdapter.ObtenerProcesoAuditoria(registro, unidadOperativa.Result); resultado.Result.Add(procesoAuditoria); } } catch (Exception e) { resultado.IsSuccess = false; resultado.Exception = new ApplicationLayerException <ProcesoAuditoriaService>(e); } return(resultado); }