Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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"));
            }
        }