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()); } }