コード例 #1
0
        public async Task <IActionResult> EditUser(int id, EditUserFormView editUserFormView, string returnUrl = null)
        {
            ApplicationUser user = await _userManager.FindByIdAsync(id.ToString());

            if (id == 0)
            {
                return(BadRequest());
            }

            user.UserName    = editUserFormView.UserName;
            user.Email       = editUserFormView.Email;
            user.Firstname   = editUserFormView.Firstname;
            user.LastName    = editUserFormView.Lastname;
            user.PhoneNumber = editUserFormView.PhoneNumber.ToString();
            string existingRole   = _userManager.GetRolesAsync(user).Result.Single();
            int    existingRoleId = _roleManager.Roles.Single(r => r.Name == existingRole).Id;

            IdentityResult result = await _userManager.UpdateAsync(user);

            if (result.Succeeded)
            {
                if (existingRoleId != editUserFormView.RoleId)
                {
                    IdentityResult roleResult = await _userManager.RemoveFromRoleAsync(user, existingRole);

                    if (roleResult.Succeeded)
                    {
                        ApplicationRole applicationRole = await _roleManager.FindByIdAsync(editUserFormView.RoleId.ToString());

                        if (applicationRole != null)
                        {
                            IdentityResult newRoleResult = await _userManager.AddToRoleAsync(user, applicationRole.Name);

                            if (newRoleResult.Succeeded)
                            {
                            }
                        }
                    }
                }
                return(RedirectToAction("Index", "Admin"));
            }



            return(View(editUserFormView));
        }
コード例 #2
0
        public IActionResult EditUser(EditUserFormView userFormView, string returnUrl = null)
        {
            if (userFormView.Id == 0)
            {
                return(BadRequest());
            }

            var user = _unitOfWork.User.GetUser(userFormView.Id);


            var model = new EditUserFormView
            {
                Firstname        = user.Firstname,
                Lastname         = user.LastName,
                UserName         = user.UserName,
                Email            = user.Email,
                PhoneNumber      = user.PhoneNumber,
                RoleId           = _roleManager.Roles.Single(r => r.Name == _userManager.GetRolesAsync(user).Result.Single()).Id,
                ApplicationRoles = _unitOfWork.Role.GetRoles()
            };

            return(View(model));
        }