Exemple #1
0
        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"));
        }
Exemple #2
0
        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"));
        }