Пример #1
0
        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)));
        }
Пример #2
0
        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));
        }
Пример #3
0
        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));
        }
Пример #6
0
        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));
        }
Пример #7
0
        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);
        }