示例#1
0
        public async Task <IActionResult> UserEdit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            User user = await _context.Users.FirstAsync(u => u.Id == id);

            if (user == null)
            {
                return(NotFound());
            }

            UsersUserEditViewModel model = new UsersUserEditViewModel
            {
                Id        = user.Id,
                UserName  = user.UserName,
                FirstName = user.FirstName,
                LastName  = user.LastName,
                Email     = user.Email,
                Password  = user.Password
            };

            return(View(model));
        }
示例#2
0
        public async Task <IActionResult> UserEdit(UsersUserEditViewModel model)
        {
            if (ModelState.IsValid)
            {
                User user = await _userManager.FindByIdAsync(model.Id.ToString());

                user.Id             = model.Id;
                user.UserName       = model.UserName;
                user.FirstName      = model.FirstName;
                user.LastName       = model.LastName;
                user.Email          = model.Email;
                user.EmailConfirmed = true;
                user.Password       = model.Password;
                user.PasswordHash   = _userManager.PasswordHasher.HashPassword(user, model.Password);
                user.SecurityStamp  = Guid.NewGuid().ToString();

                await _signInManager.SignOutAsync();

                var result = await _userManager.UpdateAsync(user);

                if (result.Succeeded)
                {
                    await _signInManager.SignInAsync(user, false);

                    return(RedirectToAction("Details", "Users", new { id = user.Id }));
                }
                else
                {
                    foreach (var error in result.Errors)
                    {
                        ModelState.AddModelError("", error.Description);
                    }
                }
            }
            return(View(model));
        }