public ActionResult AddCourseVM(int? id) { Student student = db.Students.Find(id); List<Course> alreadyTaken = student.CoursesTaken.ToList(); Concentration conc = db.Concentrations.Find(student.Concentration.ID); List<BaseCourse> potentialCourses = conc.RequiredCourses.ToList(); AddCourseViewModel vModel = new AddCourseViewModel(student, potentialCourses); List<Course> listCourses = new List<Course>(); foreach (BaseCourse baseC in potentialCourses) { Course c = new Course(); c.BaseCourse = baseC; listCourses.Add(c); } foreach (Course c in alreadyTaken) { listCourses.RemoveAll(s => s.BaseCourse.ID == c.BaseCourseID); } vModel.PossibleCourses = listCourses; for (int i = 0; i < listCourses.Count; i++) { var selectList = new SelectList(db.Semesters, "Sname", "Sname", "1"); this.ViewData[string.Format("PossibleCourses[{0}].Semester", i)] = selectList; List<SelectListItem> items = new List<SelectListItem>(); items.Add(new SelectListItem { Text = "A", Value = "4" }); items.Add(new SelectListItem { Text = "B", Value = "3" }); items.Add(new SelectListItem { Text = "C", Value = "2" }); items.Add(new SelectListItem { Text = "D", Value = "1" }); items.Add(new SelectListItem { Text = "F", Value = "0" }); this.ViewData[string.Format("PossibleCourses[{0}].Grade", i)] = items; this.ViewData[string.Format("selected[{0}]", i)] = 1; } return View("AddCourseVM", vModel); }
public ActionResult AddCourseVM(AddCourseViewModel vModel) { Student stu = db.Students.Find(vModel.Student.ID); foreach (Course c in vModel.PossibleCourses) { if (c.Selected) { BaseCourse bc = db.BaseCourses.Find(c.BaseCourse.ID); c.BaseCourse = bc; ViewData["grade"] = new SelectList(vModel.PossibleCourses); stu.CoursesTaken.Add(c); db.Entry(c).State = EntityState.Added; } } if (stu != null) { db.Entry(stu).State = EntityState.Modified; db.SaveChanges(); } return RedirectToAction("ListTakenCourses", new { id=stu.ID}); }