예제 #1
0
 public ActionResult EditUser(EditAccountModel model)
 {
     if (ModelState.IsValid)
     {
         try
         {
             db.EditUser(model);
             return RedirectToAction("Index", "People");
         }
         catch (Exception e)
         {
             ModelState.AddModelError("", e.ToString());
         }
     }
     return View(model);
 }
예제 #2
0
        public void EditUser(EditAccountModel model)
        {
            User user = GetUserById(model.UId);
            user.UserName = model.UserName;
            user.FirstName = model.FirstName;
            user.LastName = model.LastName;
            user.Email = model.Email;
            user.Status = model.Status;

            ApplicationUserManager UserManager = new ApplicationUserManager(new ApplicationUserStore(new ApplicationDbContext()));

            if (model.Password != null)
            {
                user.PasswordHash = UserManager.PasswordHasher.HashPassword(model.Password);

            }

            List<string> removeIndex = new List<string>();
            for (int i = 0; i < user.Role.Count; i++)
            {
                if (!(model.Roles.Contains(new RoleCheckBox(user.Role.ElementAt(i).Name, false))))
                {
                    removeIndex.Add(user.Role.ElementAt(i).Id);
                }
            }
            foreach (var index in removeIndex)
            {
                Role role = GetRoleById(index);
                user.Role.Remove(role);
            }

            for (int i = 0; i < model.Roles.Count; i++)
            {
                if (model.Roles[i].Checked)
                {
                    try
                    {
                        Role role = GetRoleByName(model.Roles[i].Text);
                        user.Role.Add(role);
                    }
                    catch { }
                }
            }

            Save();
        }