public async Task <IActionResult> Create(AdminCreateUserModel userCreateModel) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = userCreateModel.Email, Email = userCreateModel.Email }; var result = await _userManager.CreateAsync(user, userCreateModel.Password); if (result.Succeeded) { // email confirmation here StatusMessage = "User has been created"; return(RedirectToAction("Index")); } StatusMessage = "Error creating the user: "; foreach (var error in result.Errors) { StatusMessage += error; } return(View(userCreateModel)); } // If we got this far, something failed, redisplay form return(View(userCreateModel)); }
public async Task <ActionResult> Create(AdminCreateUserModel model) { if (model.Password != model.ConfirmPassword) { ModelState.AddModelError("ConfirmPassword", "Passwords Don't match"); } if (await _userManager.FindByEmailAsync(model.Email) != null) { ModelState.AddModelError("Email", "The email already exists"); } if (!ModelState.IsValid) { return(View(model)); } try { var user = new ApplicationUser { UserName = model.Email, Email = model.Email, }; var result = await _userManager.CreateAsync(user, model.Password); if (result.Succeeded == false) { foreach (var identityError in result.Errors) { ModelState.AddModelError("", identityError.Description); return(View(model)); } } if (model.IsAdmin) { await _userManager.AddToRoleAsync(user, "Admin"); } return(RedirectToAction("Index")); } catch (Exception ex) { return(RedirectToAction("Error", ex.Message)); } }
public async Task <IActionResult> AddUser(AdminCreateUserModel model) { User user; if (ModelState.IsValid) { user = new User { UserName = model.Email, Email = model.Email }; var result = await userManager.CreateAsync(user, model.Password); if (result.Succeeded) { var role = await roleManager.FindByIdAsync(model.RoleName); if (role == null) { ViewBag.ErrorMessage = $"Role with Id = {model.RoleName} cannot be found"; return(View("NotFound")); } result = await userManager.AddToRoleAsync(user, role.Name); if (result.Succeeded) { return(RedirectToAction("Index")); } } foreach (var error in result.Errors) { ModelState.AddModelError("", error.Description); } } return(View()); }