コード例 #1
0
        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());
        }