/// <summary> /// Realiza la búsqueda de plantillas /// </summary> /// <param name="filtro">Filtro de búsqueda</param> /// <returns>Listado de plantillas</returns> public ProcessResult <List <PlantillaRequerimientoResponse> > BuscarPlantilla(PlantillaRequerimientoRequest filtro) { ProcessResult <List <PlantillaRequerimientoResponse> > resultado = new ProcessResult <List <PlantillaRequerimientoResponse> >(); //List<CodigoValorResponse> resultadoTipoContrato = null; //List<CodigoValorResponse> resultadoTipoDocumentoContrato = null; List <CodigoValorResponse> resultadoEstadoVigencia = null; try { //resultadoTipoContrato = politicaService.ListarTipoContrato().Result; //resultadoTipoDocumentoContrato = politicaService.ListarTipoDocumentoContrato().Result; resultadoEstadoVigencia = politicaService.ListarEstadoVigencia().Result; Guid?codigoPlantilla = filtro.CodigoPlantilla != null ? new Guid(filtro.CodigoPlantilla) : (Guid?)null; DateTime?fechaInicioVigencia = null; DateTime?fechaFinVigencia = null; if (!string.IsNullOrWhiteSpace(filtro.FechaInicioVigenciaString)) { fechaInicioVigencia = DateTime.ParseExact(filtro.FechaInicioVigenciaString, DatosConstantes.Formato.FormatoFecha, System.Globalization.CultureInfo.InvariantCulture); } else { fechaInicioVigencia = null; } if (!string.IsNullOrWhiteSpace(filtro.FechaFinVigenciaString)) { fechaFinVigencia = DateTime.ParseExact(filtro.FechaFinVigenciaString, DatosConstantes.Formato.FormatoFecha, System.Globalization.CultureInfo.InvariantCulture); } else { fechaFinVigencia = null; } List <PlantillaRequerimientoLogic> listado = plantillaRequerimientoLogicRepository.BuscarPlantilla(codigoPlantilla, filtro.Descripcion, filtro.CodigoEstadoVigencia, filtro.IndicadorAdhesion, fechaInicioVigencia, fechaFinVigencia, filtro.NumeroPagina, filtro.RegistrosPagina); resultado.Result = new List <PlantillaRequerimientoResponse>(); foreach (var registro in listado) { var plantilla = PlantillaRequerimientoAdapter.ObtenerPlantillaPaginado(registro, resultadoEstadoVigencia); resultado.Result.Add(plantilla); } } catch (Exception e) { resultado.IsSuccess = false; resultado.Exception = new ApplicationLayerException <PlantillaRequerimientoService>(e); } return(resultado); }
/// <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); }