public async Task <IActionResult> EditAccount(AccEditMdl mdl) { int id = mdl.Usr.UsrId; db.Users.Update(mdl.Usr); await db.SaveChangesAsync(); return(RedirectToAction("EditAccount", mdl.Usr.UsrId)); }
public ActionResult EditAccount(int id) { AccEditMdl editMdl = new AccEditMdl(); editMdl = (AccEditMdl)UserToMdl(editMdl); if (User.FindFirst(c => c.Type == ClaimTypes.Role).Value == "Администратор") { editMdl.Roles = db.Roles.Where(r => r.Id != 1).ToList(); List <Group> groups = db.Groups.Include(gr => gr.GrTeach).ThenInclude(gt => gt.Teacher).ToList(); editMdl.Groups = new List <GrUser>(); editMdl.Usr = db.Users. Include(u => u.UsrGr). Include(u => u.GrTeach). ThenInclude(gt => gt.Gr).FirstOrDefault(u => u.UsrId == id); if (editMdl.Usr.RoleId == 3) { foreach (Group gr in groups) { editMdl.Groups.Add(new GrUser() { Id = gr.Id, Name = gr.Desc, AddToGr = (gr.GrTeach.TeachId == editMdl.Usr.UsrId) ? true : false }); } } else { foreach (Group gr in groups) { editMdl.Groups.Add(new GrUser() { Id = gr.Id, Name = gr.Desc, AddToGr = false }); } } return(View(editMdl)); } else if (User.FindFirst(c => c.Type == ClaimTypes.Role).Value == "Пользователь") { if (Convert.ToInt32(User.FindFirst(c => c.Type == "UserId").Value) == id) { editMdl.Usr = db.Users.Include(u => u.UsrRole). Include(u => u.UsrGr).FirstOrDefault(u => u.UsrId == id); return(View(editMdl)); } else { return(RedirectToAction("Index", "Home")); } } else if (User.FindFirst(c => c.Type == ClaimTypes.Role).Value == "Преподаватель") { if (Convert.ToInt32(User.FindFirst(c => c.Type == "UserId").Value) == id) { List <Group> groups = db.Groups.Include(gr => gr.GrTeach).ThenInclude(gt => gt.Teacher).ToList(); editMdl.Groups = new List <GrUser>(); editMdl.Usr = db.Users.Include(u => u.UsrRole). Include(u => u.GrTeach). ThenInclude(gr => gr.Gr).FirstOrDefault(u => u.UsrId == id); foreach (Group gr in groups) { if (gr.GrTeach.TeachId == id) { editMdl.Groups.Add(new GrUser() { Id = gr.Id, Name = gr.Desc, }); } } return(View(editMdl)); } else { return(RedirectToAction("Index", "Home")); } } else { return(RedirectToAction("Index", "Home")); } }