public ResponseModel ValidatePreInscripcion(PreInscripcionQueryFilter preInscripcionQueryFilter) { try { PreInscripcionValidator validator = new PreInscripcionValidator(); var validationResult = validator.Validate(preInscripcionQueryFilter); return(MainValidator.IterationValidationResult(validationResult)); } catch (Exception err) { throw new Exception(err.Message); } }
public async Task <IActionResult> AddPreInscripcion([FromBody] PreInscripcionQueryFilter preInscripcionQueryFilter) { try { var preInscripcion = await _preInscripcionService.InsPreInscripcion(preInscripcionQueryFilter); return(StatusCode((int)preInscripcion.StatusCode, preInscripcion)); } catch (Exception err) { _logger.LogError(err, "Error inesperado"); var responsePost = new ResponsePost() { Messages = new Message[] { new Message() { Type = TypeMessage.error.ToString(), Description = err.Message } }, }; return(StatusCode(500, responsePost)); } }
public async Task <ResponsePost> InsPreInscripcion(PreInscripcionQueryFilter preInscripcionQueryFilter) { #region PreInscripcion Validator var responseModel = _preInscripcionRepositoryVal.ValidatePreInscripcion(preInscripcionQueryFilter); if (!responseModel.IsValid) { return(new ResponsePost() { Messages = responseModel.ValidationMessages.ToArray(), StatusCode = HttpStatusCode.BadRequest }); } #endregion #region Reglas de Negocio if (preInscripcionQueryFilter.Autorizaciones != null) { var autorizacionesDuplicadas = preInscripcionQueryFilter.Autorizaciones.GroupBy(autorizacion => autorizacion.Nombre).Where(autorizacion => autorizacion.Count() > 1).Count(); if (autorizacionesDuplicadas > 0) { return(new ResponsePost() { Messages = new Message[] { new Message() { Type = TypeMessage.warning.ToString(), Description = "Los nombres de las personas autorizadas están duplicados." } }, StatusCode = HttpStatusCode.BadRequest }); } } if (preInscripcionQueryFilter.Hermanos != null) { var hermanosDuplicados = preInscripcionQueryFilter.Hermanos.GroupBy(hermano => hermano.NumeroDocumento).Where(hermano => hermano.Count() > 1).Count(); if (hermanosDuplicados > 0) { return(new ResponsePost() { Messages = new Message[] { new Message() { Type = TypeMessage.warning.ToString(), Description = "Los documentos de identidad de los hermanos están duplicados." } }, StatusCode = HttpStatusCode.BadRequest }); } } if (preInscripcionQueryFilter.DatosPersonales.PrimerApellido == null && preInscripcionQueryFilter.DatosPersonales.SegundoApellido == null) { return(new ResponsePost() { Messages = new Message[] { new Message() { Type = TypeMessage.warning.ToString(), Description = "El registro de al menos un apellido es obligatorio." } }, StatusCode = HttpStatusCode.BadRequest }); } #endregion var idPreInscripcion = (int)await _preInscripcionRepository.GetValorSecuenciaPreInscripcion(); preInscripcionQueryFilter.DatosPersonales.IdPreInscripcion = idPreInscripcion; await _preInscripcionRepository.InsDatosPersonales(preInscripcionQueryFilter.DatosPersonales); preInscripcionQueryFilter.DatosColegio.IdPreInscripcion = idPreInscripcion; await _preInscripcionRepository.InsDatosColegio(preInscripcionQueryFilter.DatosColegio); preInscripcionQueryFilter.ViveCon.IdPreInscripcion = idPreInscripcion; await _preInscripcionRepository.InsViveCon(preInscripcionQueryFilter.ViveCon); preInscripcionQueryFilter.Discapacidades.IdPreInscripcion = idPreInscripcion; await _preInscripcionRepository.InsPreDiscapacidad(preInscripcionQueryFilter.Discapacidades); preInscripcionQueryFilter.InformacionGeneral.IdPreInscripcion = idPreInscripcion; preInscripcionQueryFilter.InformacionGeneral.EstadoTransaccion = (int)EstadoPreInscripcion.enEspera; var preInscripcionInsert = await _preInscripcionRepository.InsInformacionGeneral(preInscripcionQueryFilter.InformacionGeneral); if (preInscripcionQueryFilter.Discapacidades.TrastornosAprendizajeDetalle != null) { foreach (var trastornoAprendizaje in preInscripcionQueryFilter.Discapacidades.TrastornosAprendizajeDetalle) { trastornoAprendizaje.IdPreInscripcion = idPreInscripcion; trastornoAprendizaje.Dominio = TiposDominio.TIPO_TRAS_APRENDIZAJE.ToString(); await _preInscripcionRepository.InsPreDiscapacidadDetalle(trastornoAprendizaje); } } if (preInscripcionQueryFilter.Discapacidades.TrastornosDetalle != null) { foreach (var trastorno in preInscripcionQueryFilter.Discapacidades.TrastornosDetalle) { trastorno.IdPreInscripcion = idPreInscripcion; trastorno.Dominio = TiposDominio.TIPO_TRASTORNO.ToString(); await _preInscripcionRepository.InsPreDiscapacidadDetalle(trastorno); } } if (preInscripcionQueryFilter.Discapacidades.DiscapacidadesDetalle != null) { foreach (var discapacidad in preInscripcionQueryFilter.Discapacidades.DiscapacidadesDetalle) { discapacidad.IdPreInscripcion = idPreInscripcion; discapacidad.Dominio = TiposDominio.TIPO_DISCAPACIDAD.ToString(); await _preInscripcionRepository.InsPreDiscapacidadDetalle(discapacidad); } } if (preInscripcionQueryFilter.Autorizaciones != null) { foreach (var autorizacion in preInscripcionQueryFilter.Autorizaciones) { autorizacion.IdPreInscripcion = idPreInscripcion; await _preInscripcionRepository.InsPreAutorizacion(autorizacion); } } if (preInscripcionQueryFilter.DatosPadre != null) { preInscripcionQueryFilter.DatosPadre.IdPreInscripcion = idPreInscripcion; preInscripcionQueryFilter.DatosPadre.Tipo = (int)TipoPadre.padre; await _preInscripcionRepository.InsDatosPadre(preInscripcionQueryFilter.DatosPadre); } if (preInscripcionQueryFilter.DatosMadre != null) { preInscripcionQueryFilter.DatosMadre.IdPreInscripcion = idPreInscripcion; preInscripcionQueryFilter.DatosMadre.Tipo = (int)TipoPadre.madre; await _preInscripcionRepository.InsDatosPadre(preInscripcionQueryFilter.DatosMadre); } if (preInscripcionQueryFilter.Hermanos != null) { foreach (var hermano in preInscripcionQueryFilter.Hermanos) { hermano.IdPreInscripcion = idPreInscripcion; hermano.TieneHermanos = (int)TieneHermano.si; await _preInscripcionRepository.InsPreHermanos(hermano); } } if (preInscripcionInsert.AffectedRows > 0) { return(new ResponsePost() { Response = preInscripcionInsert, StatusCode = HttpStatusCode.OK }); } else { return(new ResponsePost() { Response = preInscripcionInsert, StatusCode = HttpStatusCode.NoContent }); } }