コード例 #1
0
        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"));
        }
コード例 #2
0
        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));
        }