public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { return(Page()); } _context.Attach(Group).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!GroupExists(Group.Id)) { return(NotFound()); } else { throw; } } return(RedirectToPage("./Index")); }
public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { return(Page()); } TeacherSubjects = await _context.TeacherSubject .Where(ts => ts.TeacherId == Teacher.Id).ToListAsync(); _context.Attach(Teacher).State = EntityState.Modified; _context.TeacherSubject.AddRange(Subjects.Where(s => s.ForTeacher && !TeacherSubjects.Any(t => t.SubjectId == s.Id)) .Select(q => new TeacherSubject { SubjectId = q.Id, TeacherId = Teacher.Id })); List <TeacherSubject> lst = new List <TeacherSubject>(); for (int i = 0; i < Subjects.Count; i++) { if (!Subjects[i].ForTeacher && TeacherSubjects.Any(t => t.SubjectId == Subjects[i].Id)) { lst.Add(TeacherSubjects.FirstOrDefault(t => t.TeacherId == Teacher.Id && t.SubjectId == Subjects[i].Id)); } } _context.TeacherSubject.RemoveRange(lst); //_context.TeacherSubject.RemoveRange(Subjects.Where(s => !s.ForTeacher && TeacherSubjects.Any(t => t.SubjectId == s.Id)) // .Select(s => TeacherSubjects.Where(t => t.SubjectId == s.Id && t.TeacherId == Teacher.Id))); //var lst = (IEnumerable<TeacherSubject>)TeacherSubjects // .Select(t => Subjects.Where(s => s.Id != t.SubjectId && s.ForTeacher)); //_context.TeacherSubject.RemoveRange(lst); try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!TeacherExists(Teacher.Id)) { return(NotFound()); } else { throw; } } return(RedirectToPage("./Index")); }