public async Task <IActionResult> Edit(int id, [Bind("Id,ProfesorId,MateriaId")] MateriaProfesor materiaProfesor) { if (id != materiaProfesor.Id) { return(NotFound()); } if (ModelState.IsValid) { try { //Actualiza la relación en la BD _context.Update(materiaProfesor); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!MateriaProfesorExists(materiaProfesor.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } //En caso de recibir una relación invalida, vuelve a la view Edit y disponibiliza el mensaje de error ViewBag.Erro = "display: inline; color:red;"; return(View(materiaProfesor)); }
public async Task <IActionResult> Create([Bind("Id,ProfesorId,MateriaId")] MateriaProfesor materiaProfesor) { if (ModelState.IsValid) { //Inserto la nueva relación entre materia y profesor en la BD _context.Add(materiaProfesor); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } //Si la relación es invalida vuelve a la view Create con toda la información necesaria y disponibiliza el mensaje de error var profesores = (from p in _context.Profesor select p).ToList(); List <Profesor> profesSinMateria = new List <Profesor>(); foreach (Profesor p in profesores) { MateriaProfesor profe = null; profe = _context.MateriaProfesor.Where(m => m.ProfesorId == p.Id) .FirstOrDefault(); if (profe == null) { profesSinMateria.Add(p); } } var materias = (from m in _context.Materia orderby m.Nombre ascending select m).ToList(); List <Materia> materiasSinProfe = new List <Materia>(); foreach (Materia m in materias) { MateriaProfesor mate = null; mate = _context.MateriaProfesor.Where(x => x.MateriaId == m.Id) .FirstOrDefault(); if (mate == null) { materiasSinProfe.Add(m); } } ViewBag.Profesores = profesSinMateria; ViewBag.Materias = materiasSinProfe; ViewBag.Erro = "display: inline; color:red;"; return(View(materiaProfesor)); }
// GET: MateriaProfesors/Edit/5 public async Task <IActionResult> Edit(int?id) { if (id == null) { return(NotFound()); } //Trae la relación entre materia y profesor que se desea editar var materiaProfesor = await _context.MateriaProfesor.FindAsync(id); if (materiaProfesor == null) { return(NotFound()); } //Trae al profesor de la relación var profesor = _context.Profesor.Where(x => x.Id == materiaProfesor.ProfesorId).FirstOrDefault(); //Trae todas las materias var materias = (from m in _context.Materia select m).ToList(); //Filtra la lista de materias, dejando unicamente aquellas que no tengan relación con ningun profesor List <Materia> materiasSinProfe = new List <Materia>(); foreach (Materia m in materias) { MateriaProfesor mate = null; mate = _context.MateriaProfesor.Where(x => x.MateriaId == m.Id) .FirstOrDefault(); if (mate == null) { materiasSinProfe.Add(m); } } //Agrega la materia actual de la relación a la lista de materias var materiaActual = _context.Materia.Where(x => x.Id == materiaProfesor.MateriaId).FirstOrDefault(); materiasSinProfe.Add(materiaActual); //Envia todo a la view Edit ViewBag.Profesor = profesor; ViewBag.Materias = materiasSinProfe; ViewBag.Erro = "display: none;"; return(View(materiaProfesor)); }
// GET: MateriaProfesors/Create public IActionResult Create() { //Agarra todos los profesores var profesores = (from p in _context.Profesor select p).ToList(); //Filtra la lista de profesores, dejando unicamente aquellos que no tengan relación con ninguna materia List <Profesor> profesSinMateria = new List <Profesor>(); foreach (Profesor p in profesores) { MateriaProfesor profe = null; profe = _context.MateriaProfesor.Where(m => m.ProfesorId == p.Id) .FirstOrDefault(); if (profe == null) { profesSinMateria.Add(p); } } //Agarra todas las materias var materias = (from m in _context.Materia orderby m.Nombre ascending select m).ToList(); //Filtra la lista de materias, dejando unicamente aquellas que no tengan relación con ningun profesor List <Materia> materiasSinProfe = new List <Materia>(); foreach (Materia m in materias) { MateriaProfesor mate = null; mate = _context.MateriaProfesor.Where(x => x.MateriaId == m.Id) .FirstOrDefault(); if (mate == null) { materiasSinProfe.Add(m); } } //Envia todo a la view Create ViewBag.Profesores = profesSinMateria; ViewBag.Materias = materiasSinProfe; ViewBag.Erro = "display: none;"; return(View()); }