public async Task <IActionResult> Edit(string id) { var result = await userManager.FindByIdAsync(id); if (result != null) { var emp = new UserEditViewsModel() { Email = result.Email, RoleId = result.Id }; var role = await userManager.GetRolesAsync(result); if (role != null && role.Any()) { var name = await roleManager.FindByNameAsync(role.FirstOrDefault()); emp.RoleId = name.Id; } ViewBag.Role = roleManager.Roles; return(View(emp)); } return(View()); }
public async Task <IActionResult> Edit(UserEditViewsModel model) { if (ModelState.IsValid) { var emp = await userManager.FindByIdAsync(model.Id); if (emp != null) { emp.UserName = model.Email; emp.Email = model.Email; emp.Id = model.Id; } var num = await userManager.UpdateAsync(emp); if (num.Succeeded) { var rolename = await userManager.GetRolesAsync(emp); var deRole = await userManager.RemoveFromRolesAsync(emp, rolename); if (!string.IsNullOrEmpty(model.RoleId)) { var role = await roleManager.FindByIdAsync(model.RoleId); var addRoleresult = await userManager.AddToRoleAsync(emp, role.Name); if (addRoleresult.Succeeded) { return(RedirectToAction("Index", "User")); } foreach (var error in addRoleresult.Errors) { ModelState.AddModelError("", error.Description); } } return(RedirectToAction("Index", "User")); } foreach (var pb in num.Errors) { ModelState.AddModelError("", errorMessage: "Can not match"); } } ; return(View(model)); }