//Agregar Calificaciones public ActionResult AgregarCalificaciones(int id_gpp, double calActual, double calNueva) { try { //primero buscamos a ver si ya existe la calificacion. Calificacion c = _ctx.Calificaciones.Where(x => x.GpPeriodoId == id_gpp).FirstOrDefault(); GpPeriodo gp = _ctx.GpPeriodos.Where(x => x.Id == id_gpp) .Include(x => x.GrupoPersona).FirstOrDefault(); if (c != null) { //Es edicion c.calificacion = calNueva; _ctx.SaveChanges(); } else { //Es asignacion nueva c = new Calificacion(); c.GpPeriodo = gp; c.GpPeriodoId = id_gpp; c.calificacion = calNueva; _ctx.Calificaciones.Add(c); _ctx.SaveChanges(); } return(Filtrar(gp.GrupoPersonaId, gp.GrupoPersona.CicloId, gp.periodo, gp.GrupoPersona.MateriaId)); } catch (Exception e) { return(View("Index")); } }
//Crear public ActionResult Crear(GrupoPersonaViewModel gpvm) { try { if (!ModelState.IsValid) { //Algo salio mal, de modo que volvemos a la lista, pero //se tienen que llenar los dropdown de nuevo gpvm.grupoList = _ctx.Grupos.ToList(); gpvm.materiaList = _ctx.Materias.ToList(); gpvm.cicloList = _ctx.Ciclos.ToList(); gpvm.personaList = _ctx.Personas.Where(x => x.TipoPersonaId == TipoPersona.Alumno).ToList(); gpvm.profesorList = _ctx.Personas.Where(x => x.TipoPersonaId == TipoPersona.Profesor).ToList(); // return(View("FormGrupoPersonas", gpvm)); } GrupoPersona gp = null; if (gpvm.Id == 0) { gp = new GrupoPersona(); //llenamos la informacion gp.GrupoId = gpvm.GrupoId; gp.MateriaId = gpvm.MateriaId; gp.CicloId = gpvm.CicloId; gp.PersonaId = gpvm.PersonaId; gp.ProfesorId = gpvm.ProfesorId; _ctx.GrupoPersonas.Add(gp); } else { //Estan editando gp = _ctx.GrupoPersonas.SingleOrDefault(x => x.Id == gpvm.Id); if (gp != null) { //es que quieren editar y realmente existe, parseamos valores gp.GrupoId = gpvm.GrupoId; gp.MateriaId = gpvm.MateriaId; gp.CicloId = gpvm.CicloId; gp.PersonaId = gpvm.PersonaId; gp.ProfesorId = gpvm.ProfesorId; } } _ctx.SaveChanges(); //aqui validamos que fue un registro nuevo if (gpvm.Id == 0) { //es un registro nuevo int id_gp = gp.Id; // comentado por que daba nulo . //int periodos = gp.Ciclo.Modalidad.n_periodos; var ciclo = _ctx.Ciclos.Include(x => x.Modalidad).SingleOrDefault(x => x.Id == gp.CicloId); int periodos = ciclo.Modalidad.n_periodos; for (int i = 1; i <= periodos; i++) { //realiamos un insert GpPeriodo gpp = new GpPeriodo(); gpp.GrupoPersonaId = id_gp; gpp.periodo = i; _ctx.GpPeriodos.Add(gpp); } _ctx.SaveChanges(); } } catch (Exception e) { return(View("FormGrupoPersona", e)); } return(RedirectToAction("Index")); }