public IActionResult Assign(AssignStudentsViewModel model)
        {
            var student = model.Students.Where(s => s.IsChecked).Select(s => s.Id);

            repository.SetStudentsToCourse(model.Id, student);
            return(RedirectToAction("Course", "Course"));
        }
Esempio n. 2
0
        public IActionResult Assign(int id)
        {
            var allstudents = this.repository.GetAllStudents();
            var course      = repository.GetCourse(id);
            var model       = new AssignStudentsViewModel();

            if (course != null)
            {
                model.Id         = id;
                model.CourseName = course.Name;
                model.StartDate  = course.StartDate;
            }

            model.Students = new List <StudentViewModel>();

            foreach (var student in allstudents)
            {
                model.Students.Add(new StudentViewModel()
                {
                    Id        = student.Id,
                    Name      = student.Name,
                    IsChecked = course.Students.Any(s => s.StudentId == student.Id)
                });
            }

            return(View(model));
        }
        // GET: Teacher/AssignStudents
        // Assign students to Spelling Groups
        public async Task <IActionResult> AssignStudents(int?SpellingGroupId)
        {
            AssignStudentsViewModel assignStudentsVM = new AssignStudentsViewModel();

            assignStudentsVM.SpellingGroups = await _context.SpellingGroups.Where(g => g.TeacherUsername == User.Identity.Name).ToListAsync();

            assignStudentsVM.AssignedStudents   = new List <Student>();
            assignStudentsVM.UnassignedStudents = new List <Student>();

            // Assign first SpellingGroup in list to ActiveSpellingGroup.
            if (SpellingGroupId == null && assignStudentsVM.SpellingGroups.Count != 0)
            {
                SpellingGroupId = assignStudentsVM.SpellingGroups[0].SpellingGroupId;
            }

            if (SpellingGroupId != null)
            {
                // Get activated spelling group.
                assignStudentsVM.ActiveSpellingGroup = await _context.SpellingGroups.SingleOrDefaultAsync(g => g.SpellingGroupId == SpellingGroupId);

                ViewData["GroupMessage"] = "";

                // Get allocated students for active spelling group.
                var allocations = _context.StudentGroupAllocations.Where(a => a.SpellingGroupId == assignStudentsVM.ActiveSpellingGroup.SpellingGroupId).ToList();

                // Assign active group students to view model.
                foreach (var allocation in allocations)
                {
                    assignStudentsVM.AssignedStudents.Add(await _context.Students.SingleOrDefaultAsync(s => s.StudentId == allocation.StudentId));
                }

                // Assign unallocated students for active spelling group to Unassigned students list.
                var allStudents = _context.Students.Where(s => s.TeacherUsername == User.Identity.Name).ToList();

                foreach (var student in allStudents)
                {
                    bool allocated = false;
                    foreach (var allocation in allocations)
                    {
                        if (student.StudentId == allocation.StudentId)
                        {
                            allocated = true;
                        }
                    }
                    if (!allocated)
                    {
                        assignStudentsVM.UnassignedStudents.Add(student);
                    }
                }
            }
            else
            {
                ViewData["GroupMessage"] = "You have no groups.";
            }

            return(View(assignStudentsVM));
        }