// GET: SchoolClasses/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(RedirectToAction("Index"));
            }

            var schoolClass = await _context.SchoolClasses.FindAsync(id);

            if (schoolClass == null)
            {
                return(RedirectToAction("Index"));
            }

            var enrolledStudentIds = _context.SchoolClassStudents
                                     .Where(scs => scs.SchoolClassId == schoolClass.Id)
                                     .Select(scs => scs.StudentId).ToList();

            var enrolledStudents = await GetUsersFromIdAsync(enrolledStudentIds);

            var viewModel = new SchoolClassViewModel
            {
                Id         = schoolClass.Id,
                Name       = schoolClass.Name,
                Teacher    = await _userManager.FindByIdAsync(schoolClass.TeacherId),
                TeacherId  = schoolClass.TeacherId,
                Students   = enrolledStudents,
                StudentIds = enrolledStudentIds
            };

            await SchoolClassViewModel.UpdateUserList(_userManager);

            return(View(viewModel));
        }
        // GET: SchoolClasses
        public async Task <IActionResult> Index()
        {
            var schoolClasses = await _context.SchoolClasses.ToListAsync();

            var schoolClassStudents = await _context.SchoolClassStudents.ToListAsync();

            var viewModels = new List <SchoolClassViewModel>();

            foreach (var sc in schoolClasses)
            {
                var studentIds = schoolClassStudents
                                 .Where(scs => scs.SchoolClassId == sc.Id)
                                 .Select(scs => scs.StudentId).ToList();

                viewModels.Add(new SchoolClassViewModel
                {
                    Id       = sc.Id,
                    Name     = sc.Name,
                    Teacher  = await _userManager.FindByIdAsync(sc.TeacherId),
                    Students = await GetUsersFromIdAsync(studentIds)
                });
            }

            await SchoolClassViewModel.UpdateUserList(_userManager);

            return(View(viewModels));
        }
        // GET: SchoolClasses/Create
        public async Task <IActionResult> Create()
        {
            await SchoolClassViewModel.UpdateUserList(_userManager);

            return(View());
        }