public async Task <IActionResult> UnEnrollStudents(int?id)
        {
            var course = _context.Course.Where(s => s.Id == id).Include(s => s.Students).First();

            if (course == null)
            {
                return(NotFound());
            }

            var unEnrollStudentsVM = new UnEnrollStudentsViewModel
            {
                Course           = course,
                StudentList      = new MultiSelectList(_context.Student.OrderBy(s => s.Id), "Id", "FullName"),
                SelectedStudents = course.Students.Select(sa => sa.StudentId),
            };

            return(View(unEnrollStudentsVM));
        }
Beispiel #2
0
        public async Task <IActionResult> UnEnrollStudents(int?courseId, int?year, string semester)
        {
            IQueryable <Enrollment> enrollments = _context.Enrollments;
            List <Course>           courses     = await _context.Courses.ToListAsync();

            if (courseId != null)
            {
                enrollments = enrollments.Where(s => s.CourseId == courseId);
            }
            IQueryable <int?> years = enrollments.OrderBy(m => m.Year).Select(m => m.Year).Distinct();

            if (year != null)
            {
                enrollments = enrollments.Where(s => s.Year == year);
            }
            IQueryable <string> semesters = enrollments.OrderBy(m => m.Semester).Select(m => m.Semester).Distinct();

            if (!string.IsNullOrEmpty(semester))
            {
                enrollments = enrollments.Where(s => s.Semester == semester);
            }
            if (courseId != null && year != null && !string.IsNullOrEmpty(semester))
            {
                enrollments = enrollments.Include(e => e.Student);
            }
            else
            {
                enrollments = null;
            }

            var unenrollStudentsViewModel = new UnEnrollStudentsViewModel
            {
                Courses       = new SelectList(courses, "Id", "Title"),
                Enrollments   = (enrollments != null ? new SelectList(await enrollments.OrderBy(s => s.Student.FullNameId).ToListAsync(), "Id", "Student.FullNameId") : null),
                EnrollmentIds = (enrollments != null ? await enrollments.Select(e => e.Id).ToListAsync() : null),
                Years         = new SelectList(years.ToList()),
                Semesters     = new SelectList(semesters.ToList())
            };

            return(View(unenrollStudentsViewModel));
        }
Beispiel #3
0
        public async Task <IActionResult> UnEnrollStudents(UnEnrollStudentsViewModel entry)
        {
            if (ModelState.IsValid)
            {
                foreach (int eId in entry.EnrollmentIds)
                {
                    Enrollment enrollment = await _context.Enrollments
                                            .FirstOrDefaultAsync(c => c.Id == eId);

                    if (enrollment != null)
                    {
                        enrollment.FinishDate = entry.FinishDate;
                        _context.Update(enrollment);
                    }
                }
                await _context.SaveChangesAsync();

                Course course = await _context.Courses.FirstOrDefaultAsync(c => c.Id == entry.CourseId);

                return(RedirectToAction(nameof(Index), new { sTitle = course.Title, sSem = entry.Semester, sYear = entry.Year }));
            }
            return(RedirectToAction(nameof(Index)));
        }