public async Task <ActionResult <GetUsersManagementViewModel> > CreateAsync([FromBody] CreateUsersManagementViewModel model) { var userModifier = User.Identity.GetUser(); var result = await _usersManagementService.CreateAsync(userModifier.Id, model); return(CreatedItem($"users/{result.UserId}", result)); }
public virtual async Task <GetUsersManagementViewModel> CreateAsync(Guid modifierUserId, CreateUsersManagementViewModel model) { var identityUser = await _userManager.FindByEmailAsync(model.Email); Require.Objects.ShouldBeNull(identityUser, "User already exists"); var newUser = new ApplicationUser() { Email = model.Email, UserName = model.Email, FirstName = model.FirstName, LastName = model.LastName, PhoneNumber = model.PhoneNumber, PhoneNumberConfirmed = !string.IsNullOrEmpty(model.PhoneNumber), LastPasswordChange = DateHelper.GetUtc(), CreatedBy = modifierUserId.ToString(), EmailConfirmed = true }; var password = PasswordHelper.GeneratePassword(8); var creationResult = await _userManager.CreateAsync(newUser, password); Require.Booleans.IsTrue <BadRequestException>(creationResult.Succeeded, creationResult.GetErrors); CheckRole(model.Roles); var assignRoleResult = await _userManager.AddToRolesAsync(newUser, model.Roles); Require.Booleans.IsTrue <BadRequestException>(assignRoleResult.Succeeded, assignRoleResult.GetErrors); SendInvitationWithPassword(newUser, password); var userData = _mapper.Map <GetUsersManagementViewModel>(newUser); return(userData); }