public ActionResult SaveCoursesFor(SelectCoursesViewModel viewModel) { if (!ModelState.IsValid) { return(new HttpNotFoundResult()); } List <Course> availableCourses = _context.Courses.ToList(); string Id = User.Identity.GetUserId(); Student student = _context.Students.Include("CourseRequests").SingleOrDefault(s => s.UserId == Id); List <CourseRequest> Requests = new List <CourseRequest>(); List <CourseRequest> requests2 = student.CourseRequests; // Test Line for (int i = 0; i < viewModel.FirstChoices.Count; i++) { Course firstChoice = availableCourses.SingleOrDefault(c => c.Id == viewModel.FirstChoices[i]); Course secondChoice = availableCourses.SingleOrDefault(c => c.Id == viewModel.SecondChoices[i]); if (firstChoice == null || secondChoice == null) { return(new HttpNotFoundResult()); } Requests.Add(new CourseRequest { Id = 0, FirstChoice = firstChoice, SecondChoice = secondChoice }); } student.CourseRequests = Requests.ToList(); student.DonePickingClasses = true; _context.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Select() { string Id = User.Identity.GetUserId(); Student student = _context.Students.SingleOrDefault(s => s.UserId == Id); if (student.DonePickingClasses || !_context.StudentsCanPickCourses) { return(RedirectToAction("Index")); } Outline outline = _context.Outlines.SingleOrDefault(o => o.Grade == student.Grade); List <Course> AvailableCourses = _context.Courses.Where(c => c.GradeLevel == student.Grade && _context.Classes.Where(c2 => c2.course == c && c2.StudentsEnrolled < c2.OccupancyLimit).Count() > 0) .Where(c => c.CanBeAnElective && !outline.Courses.Contains(c)).ToList(); int coursesCount = _context.Outlines.Include("Courses").SingleOrDefault(o => o.Grade == student.Grade).Courses.Count; int ElectiveCount = 8 - coursesCount; SelectCoursesViewModel model = new SelectCoursesViewModel() { AvailableCourses = AvailableCourses, ElectiveCount = ElectiveCount, SecondChoices = new List <int>(), FirstChoices = new List <int>() }; return(View("SelectCourses", model)); }