public ActionResult EditSubject(int id) { // Carga los datos de la materia a modificar try { ListSubjectViewModelAdmin model = new ListSubjectViewModelAdmin(); using (Models.DBContainer db = new Models.DBContainer()) { Subject subject = db.Subjects.Find(id); if (subject == null) { TempData["Alert"] = "An error occurred, try again later"; return(RedirectToAction("ListSubjects")); } model.id_subject = subject.id_subject; model.name = subject.name; model.description = subject.desc; model.capacity = subject.capacity; model.time_from = subject.time_from; model.time_to = subject.time_to; model.id_teacher = subject.id_teacher; } PopulateDropDownList(); return(View(model)); } catch (Exception exc) { throw new Exception(exc.Message); } }
public ActionResult EditSubject(ListSubjectViewModelAdmin model) { // Modifica la materia y la persiste en la base de datos try { if (ModelState.IsValid) { using (Models.DBContainer db = new Models.DBContainer()) { Subject subject = db.Subjects.Find(model.id_subject); if (subject == null) { TempData["Alert"] = "An error occurred, try again later"; return(RedirectToAction("ListSubjects")); } subject.name = model.name; subject.desc = model.description; subject.capacity = model.capacity; subject.time_from = model.time_from; subject.time_to = model.time_to; subject.id_teacher = model.id_teacher; if (subject.time_to <= subject.time_from) { // Horario no válido ViewData["Error"] = "Ending time must be strictly greater than starting time"; PopulateDropDownList(); return(View(model)); } db.Entry(subject).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); } return(RedirectToAction("ListSubjects", "Admin")); } // Si el modelo no es válido, tengo que volver a la misma pantalla, con // lo cual hay que rellenar de nuevo el DropDownList PopulateDropDownList(); return(View(model)); } catch (Exception exc) { throw new Exception(exc.Message); } }
public ActionResult NewSubject(ListSubjectViewModelAdmin model) { // Crea una nueva materia y la guarda en el sistema try { if (ModelState.IsValid) { using (Models.DBContainer db = new Models.DBContainer()) { Subject subject = new Subject(); subject.name = model.name; subject.desc = model.description; subject.capacity = model.capacity; subject.time_from = model.time_from; subject.time_to = model.time_to; subject.id_teacher = model.id_teacher; if (subject.time_to <= subject.time_from) { // Horario no válido ViewData["Error"] = "Ending time must be strictly greater than starting time"; PopulateDropDownList(); return(View(model)); } db.Subjects.Add(subject); db.SaveChanges(); } return(RedirectToAction("ListSubjects", "Admin")); } // Si el modelo no es válido, tengo que volver a la misma pantalla, con // lo cual hay que rellenar de nuevo el DropDownList PopulateDropDownList(); return(View(model)); } catch (Exception exc) { throw new Exception(exc.Message); } }