public async Task <IActionResult> EnrollStudents(EnrollStudentsViewModel entry) { Course course = await _context.Courses.FirstOrDefaultAsync(c => c.Id == entry.CourseId); if (course == null) { return(NotFound()); } if (ModelState.IsValid) { foreach (int sId in entry.StudentIds) { Enrollment enrollment = await _context.Enrollments .FirstOrDefaultAsync(c => c.CourseId == entry.CourseId && c.StudentId == sId && c.Year == entry.Year && c.Semester == entry.Semester); if (enrollment == null) { enrollment = new Enrollment { CourseId = entry.CourseId, StudentId = sId, Year = entry.Year, Semester = entry.Semester }; _context.Add(enrollment); } } await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index), new { sTitle = course.Title, sSem = entry.Semester, sYear = entry.Year })); } return(RedirectToAction(nameof(Index))); }
public async Task <IActionResult> EnrollStudents(int id, EnrollStudentsViewModel model) { if (ModelState.IsValid) { try { IEnumerable <int> listStudents = model.SelectedStudents; IQueryable <Enrollment> toBeRemoved = _context.Enrollment.Where(s => !listStudents.Contains(s.StudentId) && s.CourseId == id); _context.Enrollment.RemoveRange(toBeRemoved); IEnumerable <int> existStudents = _context.Enrollment.Where(s => listStudents.Contains(s.StudentId) && s.CourseId == id).Select(s => s.StudentId); IEnumerable <int> newStudents = listStudents.Where(s => !existStudents.Contains(s)); foreach (int studentId in newStudents) { _context.Enrollment.Add(new Enrollment { StudentId = studentId, CourseId = id, Year = model.Year, Semester = model.Semester, }); } await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { throw; } return(RedirectToAction(nameof(CoursesController.Index))); } return(View(model)); }
public async Task <IActionResult> EnrollStudents(int id, EnrollStudentsViewModel viewModel) { if (ModelState.IsValid) { foreach (var student in viewModel.SelectedStudents) { Enrollment enrollment = await _context.Enrollment .FirstOrDefaultAsync(m => m.CourseID == id && m.StudentID == student && m.Year == viewModel.selectedYear && m.Semestar == viewModel.selectedSemester); if (enrollment == null) { enrollment = new Enrollment { CourseID = id, StudentID = student, Year = viewModel.selectedYear, Semestar = viewModel.selectedSemester }; _context.Add(enrollment); } } await _context.SaveChangesAsync(); return(RedirectToAction(nameof(CoursesController.Index))); } return(View(viewModel)); }
public async Task <IActionResult> EnrollStudents(EnrollStudentsViewModel enrollStudentsViewModel) { var course = await _context.Course.FirstOrDefaultAsync(c => c.Id == enrollStudentsViewModel.CourseId); if (course == null) { return(NotFound()); } if (ModelState.IsValid) { foreach (int studentId in enrollStudentsViewModel.SelectedStudents) { Enrollment enroll = await _context.Enrollment .FirstOrDefaultAsync(c => c.CourseId == enrollStudentsViewModel.CourseId && c.StudentId == studentId); if (enroll == null) { _context.Add(new Enrollment { StudentId = studentId, CourseId = enrollStudentsViewModel.CourseId, Year = enrollStudentsViewModel.Enrollments.Year, Semester = enrollStudentsViewModel.Enrollments.Semester }); } } await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(RedirectToAction(nameof(Index))); }
public async Task <IActionResult> EnrollStudents() { IQueryable <Course> courses = _context.Course; IEnumerable <Student> students = _context.Student; EnrollStudentsViewModel enrollStudentsViewModel = new EnrollStudentsViewModel { Courses = new SelectList(await courses.ToListAsync(), "Id", "Title"), StudentsList = new SelectList(students.OrderBy(s => s.FullName).ToList(), "Id", "FullName"), }; return(View(enrollStudentsViewModel)); }
public async Task <IActionResult> EnrollStudents(int?id) { var course = _context.Course.Where(s => s.Id == id).Include(s => s.Students).First(); if (course == null) { return(NotFound()); } var enrollStudentsVM = new EnrollStudentsViewModel { Course = course, StudentList = new MultiSelectList(_context.Student.OrderBy(s => s.Id), "Id", "FullName"), SelectedStudents = course.Students.Select(sa => sa.StudentId), }; return(View(enrollStudentsVM)); }
public async Task <IActionResult> EnrollStudents() { IQueryable <Course> courses = _context.Courses; IQueryable <Student> students = _context.Students; string[] semesters = new[] { "Летен", "Зимски" }; int nowYear = System.DateTime.Now.Year; int[] years = Enumerable.Range(nowYear - 10, 11).Reverse().ToArray(); var enrollStudentsViewModel = new EnrollStudentsViewModel { Courses = new SelectList(await courses.ToListAsync(), "Id", "Title"), Students = new SelectList(await students.OrderBy(s => s.FullName).ToListAsync(), "Id", "FullNameId"), Years = new SelectList(years.ToList()), Semesters = new SelectList(semesters.ToList()) }; return(View(enrollStudentsViewModel)); }
public async Task<IActionResult> EnrollStudents(int? id) { if (id == null) { return NotFound(); } var course = _context.Course.Where(m => m.CourseID == id) .Include(m => m.Students).First(); int nowYear = System.DateTime.Now.Year; int[] years = Enumerable.Range(nowYear - 10, 11).Reverse().ToArray(); var EnrollStudentsVM = new EnrollStudentsViewModel { Course = course, StudentList = new MultiSelectList(_context.Student, "Id", "FullName"), YearList = new SelectList(years.ToList()) }; return View(EnrollStudentsVM); }