public void AddRequirementsToStudent(Student student)
        {
            var listOfId = _context.RequirementStudents
                           .Where(c => c.StudentId == student.Id)
                           .Select(c => c.RequirementId);
            var listRequirement = _context.Requirements
                                  .Where(c => !listOfId.Contains(c.Id));

            if (!listRequirement.Any())
            {
                return;
            }
            foreach (var req in listRequirement)
            {
                var newReq = new RequirementStudents
                {
                    RequirementId = req.Id,
                    StudentId     = student.Id,
                    Status        = false,
                };
                _context.RequirementStudents.Add(newReq);
            }
            _context.SaveChanges();
            //using (var context = new MorenoContext())
            //{
            //    var listOfId = context.RequirementStudents
            //        .Where(c => c.StudentId == student.Id)
            //        .Select(c => c.RequirementId);
            //    var listRequirement = context.Requirements
            //        .Where(c => !listOfId.Contains(c.Id));
            //    if (!listRequirement.Any())
            //    {
            //        return;
            //    }
            //    foreach (var req in listRequirement)
            //    {
            //        var newReq = new RequirementStudents
            //        {
            //            RequirementId = req.Id,
            //            StudentId = student.Id,
            //            Status = false,
            //        };
            //        context.RequirementStudents.Add(newReq);
            //    }
            //    context.SaveChangesAsync();
            //}
        }
        private async void AddStudentClosing(object sender, DialogClosingEventArgs args)
        {
            if (Equals(args.Parameter, "Exit"))
            {
                return;
            }
            if (_isOkMessageOpen && _result)
            {
                _isOkMessageOpen = false;
                return;
            }
            else if (_isOkMessageOpen && !_result)
            {
                _isOkMessageOpen = false;
                args.Session.UpdateContent(_content);
            }
            args.Cancel();

            await ValidateAsync();

            RaisePropertyChanged(() => IsValid);

            if (Equals(args.Parameter, "Add") && !HasErrors)
            {
                args.Cancel();

                args.Session.UpdateContent(new PleaseWaitView());
                await Task.Run(() =>
                {
                    try
                    {
                        Student NewStudent;

                        //using (var context = new MorenoContext())
                        //{
                        NewStudent = new Student()
                        {
                            FirstName  = FirstName,
                            MiddleName = MiddleName,
                            LastName   = LastName,
                            Gender     = Gender,
                            Contact    = Contact,
                            Address    = Address,
                            SchoolYear = SchoolYear,
                            BirthDate  = Birthdate.GetValueOrDefault(),
                            LRN        = LRN,
                            YearLevel  = SelectedYearLevel,
                            Section    = SelectedSection,
                            Photo      = Photo
                        };
                        _context.Students.Add(NewStudent);

                        _context.SaveChanges();
                        var user = new User()
                        {
                            UserName = LRN,
                            Password =
                                $"{FirstName[0]}{MiddleName[0]}{LastName[0]}{Birthdate?.Date.ToString("dMyyyy")}"
                                .ToLower(),
                            Authorization = "Student",
                            Student       = NewStudent
                        };
                        _context.Users.Add(user);
                        _context.SaveChanges();
                        foreach (var requirement in NewStudentRequirements)
                        {
                            var studentRequirements = new RequirementStudents
                            {
                                RequirementId = requirement.Id,
                                Status        = requirement.Status,
                                StudentId     = NewStudent.Id
                            };
                            NewStudent.RequirementStudents.Add(studentRequirements);
                            _context.SaveChanges();
                        }


                        //_context.Students.Add(NewStudent);
                        //_context.Users.Add(user);

                        StatusMessage = $"{NewStudent.FullName} is registered";
                        _result       = true;
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);

                        StatusMessage = $"Failed to register Student";

                        _result = false;
                    }
                })
                .ContinueWith((t, _) =>
                {
                    if (!_result)
                    {
                        _content = args.Session.Content;
                    }
                    LoadStudents();
                    args.Session.UpdateContent(new OkMessageDialog()
                    {
                        DataContext = StatusMessage
                    });
                    _isOkMessageOpen = true;
                }, null, TaskScheduler.FromCurrentSynchronizationContext());
            }
        }