public async Task <IActionResult> OnGet()
        {
            if (ClassId == Guid.Empty)
            {
                TempData["Warning"] = "No class was selected";
                return(RedirectToPage("/Admin/Classes"));
            }

            var classResponse = await dataService.ClassAsync(ClassId);

            if (classResponse == null)
            {
                TempData["Failed"] = "The class selected does not exist";
                return(RedirectToPage("/Admin/Classes"));
            }

            ViewModel = new ClassDetailsViewModel
            {
                Class                = classResponse,
                Children             = new List <Child>(),
                BelongingSubjects    = new List <Subject>(),
                NonBelongingSubjects = new List <Subject>(),
            };

            if (classResponse.Students.Count > 0)
            {
                foreach (var student in classResponse.Students)
                {
                    ViewModel.Children.Add(student.Child);
                }
            }

            if (classResponse.Subjects.Count > 0)
            {
                foreach (var subject in classResponse.Subjects)
                {
                    ViewModel.BelongingSubjects.Add(subject.Subject);
                }
            }

            if (await _context.Subjects.AnyAsync())
            {
                var allSubjects = await _context.Subjects.ToListAsync();

                allSubjects.ForEach(subject =>
                {
                    if (!ViewModel.BelongingSubjects.Contains(subject))
                    {
                        ViewModel.NonBelongingSubjects.Add(subject);
                    }
                });
            }


            ViewData["Title"] = $"{ViewModel.Class.Name} Details";
            return(Page());
        }
        public async Task <IActionResult> Details()
        {
            var CurrentUser = (Teacher)await _userManager.GetUserAsync(User);

            var Class = _context.Classes.SingleOrDefault(c => c.Id == CurrentUser.ClassId);
            var model = new ClassDetailsViewModel(Class, CurrentUser);

            model.Students = _context.Students.Where(s => s.ClassId == Class.Id);
            var TodayAttendance = _context.Attendances.Where(a => a.Date.Date == DateTime.Now.Date);

            //finds students who have an attendance for today
            model.StudentsWithoutAttendance = model.Students.Where(s => !TodayAttendance.Any(a => a.StudentId == s.Id));
            return(View(model));
        }
        public async Task <IActionResult> Details(int id)
        {
            var Class = await _context.Classes.FindAsync(id);

            if (Class == null)
            {
                return(NotFound());
            }
            var Teacher = _context.Teachers.FirstOrDefault(t => t.ClassId == id);
            var model   = new ClassDetailsViewModel(Class, Teacher);

            model.Students = _context.Students.Where(s => s.ClassId == id);
            var TodayAttendance = _context.Attendances.Where(a => a.Date.Date == DateTime.Now.Date);

            //finds students who don't have an attendance for today
            model.StudentsWithoutAttendance = model.Students.Where(s => !TodayAttendance.Any(a => a.StudentId == s.Id));
            return(View(model));
        }
        public ActionResult Details(int id)
        {
            Class Class = _context.Classes.SingleOrDefault(c => c.Id == id);

            if (Class == null)
            {
                return(new HttpNotFoundResult());
            }

            List <Student> students   = _context.Students.ToList().Where(s => s.Classes.Contains(Class)).ToList();
            StaffMember    instructor = _context.Staff.ToList().SingleOrDefault(s => s.Id == Class.Instructor.Id);
            Course         course     = _context.Courses.ToList().SingleOrDefault(c => c.Id == Class.course.Id);

            ClassDetailsViewModel model = new ClassDetailsViewModel
            {
                Block           = Class.Block,
                Semester        = Class.Semester,
                InstructorName  = instructor.FullName,
                CourseName      = course.Name,
                StudentsInClass = students
            };

            return(View("Details", model));
        }