public async Task <ActionResult> Add(AddSysUserViewModel model) { if (ModelState.IsValid) { var user = new SysUser { UserName = model.UserName, Name = model.Name, PhoneNumber = model.PhoneNumber, Email = model.Email, CreatorUserName = HttpContext.User.Identity.Name, CTIME = DateTime.Now }; List <string> errorMsgs = new List <string>(); await HandleUserAddWithRole(model, user, errorMsgs); foreach (string error in errorMsgs) { ModelState.AddModelError("", error); } } var allErrors = this.GetModelStateErrors(ModelState); return(Json(allErrors)); }
private async Task HandleUserAddWithRole(AddSysUserViewModel model, SysUser user, List <string> errorMsgs) { var result = await UserManager.CreateAsync(user, model.Password); if (!result.Succeeded) { errorMsgs.AddRange(result.Errors); return; } if (user.Id < 1) { user = await UserManager.FindByNameAsync(user.UserName); } if (!UserManager.IsInRole(user.Id, model.RoleName)) { result = IdentityResult.Success; result = await UserManager.AddToRoleAsync(user.Id, model.RoleName); if (!result.Succeeded) { errorMsgs.AddRange(result.Errors); } } }