/// <summary> /// Realiza la adaptación de campos para registrar o actualizar /// </summary> /// <param name="data">Datos a registrar o actualizar</param> /// <returns>Entidad Plantilla con los datos a registrar</returns> public static PlantillaRequerimientoEntity RegistrarPlantilla(PlantillaRequerimientoRequest data) { var plantillaRequerimientoEntity = new PlantillaRequerimientoEntity(); if (data.CodigoPlantilla != null) { plantillaRequerimientoEntity.CodigoPlantilla = new Guid(data.CodigoPlantilla); } else { Guid code; code = Guid.NewGuid(); plantillaRequerimientoEntity.CodigoPlantilla = code; } plantillaRequerimientoEntity.Descripcion = data.Descripcion; plantillaRequerimientoEntity.CodigoEstadoVigencia = data.CodigoEstadoVigencia; plantillaRequerimientoEntity.IndicadorAdhesion = Convert.ToBoolean(data.IndicadorAdhesion); plantillaRequerimientoEntity.FechaInicioVigencia = DateTime.ParseExact(data.FechaInicioVigenciaString, DatosConstantes.Formato.FormatoFecha, System.Globalization.CultureInfo.InvariantCulture); return(plantillaRequerimientoEntity); }
/// <summary> /// Registra o actualiza una plantilla /// </summary> /// <param name="data">Datos a registrar</param> /// <returns>Indicador con el resultado de la operación</returns> public ProcessResult <object> RegistrarPlantilla(PlantillaRequerimientoRequest data) { ProcessResult <object> resultado = new ProcessResult <object>(); try { PlantillaRequerimientoEntity entidad = PlantillaRequerimientoAdapter.RegistrarPlantilla(data); DateTime fechaActual = DateTime.Now.Date; bool existeRepetido = false; if (!string.IsNullOrWhiteSpace(data.FechaInicioVigenciaString)) { var resultadoValidacion = plantillaRequerimientoLogicRepository.BuscarPlantillaTipo(Convert.ToBoolean(data.IndicadorAdhesion)); existeRepetido = resultadoValidacion.Any(x => x.CodigoPlantilla != entidad.CodigoPlantilla && x.FechaInicioVigenciaDate == entidad.FechaInicioVigencia); if (existeRepetido) { resultado.IsSuccess = false; resultado.Exception = new ApplicationLayerException <PlantillaRequerimientoService>(MensajesSistema.PlantillaExiste); } else { if (data.CodigoPlantilla == null && data.CodigoPlantillaCopiar == null) { entidad.CodigoEstadoVigencia = DatosConstantes.EstadoVigencia.Proximo; plantillaRequerimientoEntityRepository.Insertar(entidad, entornoActualAplicacion); } else if (data.CodigoPlantillaCopiar != null) { entidad.CodigoEstadoVigencia = DatosConstantes.EstadoVigencia.Proximo; plantillaRequerimientoEntityRepository.CopiarPlantilla(new Guid(data.CodigoPlantillaCopiar), data.Descripcion, Convert.ToDateTime(data.FechaInicioVigenciaString), entornoActualAplicacion.UsuarioSession, entornoActualAplicacion.Terminal); } else { var entidadSincronizar = plantillaRequerimientoEntityRepository.GetById(entidad.CodigoPlantilla); entidadSincronizar.Descripcion = entidad.Descripcion; entidadSincronizar.IndicadorAdhesion = entidad.IndicadorAdhesion; entidadSincronizar.FechaInicioVigencia = entidad.FechaInicioVigencia; plantillaRequerimientoEntityRepository.Editar(entidadSincronizar, entornoActualAplicacion); } plantillaRequerimientoEntityRepository.GuardarCambios(); plantillaRequerimientoEntityRepository.ActualizarPlantillaEstadoVigencia(); resultado.Result = data; } } else { resultado.IsSuccess = false; resultado.Exception = new ApplicationLayerException <PlantillaRequerimientoService>(MensajesSistema.PlantillaFechaInicioVigenciIncorrecto); } } catch (Exception e) { LogBL.grabarLogError(new Exception("RegistrarPlantillaRequerimiento")); LogBL.grabarLogError(e.GetBaseException()); resultado.IsSuccess = false; resultado.Exception = new ApplicationLayerException <PlantillaRequerimientoService>(e.GetBaseException().Message); } return(resultado); }