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