private static ApplicationUser CreateApplicationUser(string firstname, string lastname, string name, string password, bool emailConfirmed, IIdentityUserManager userManager, bool isSuperAdmin = false) { var email = name; ApplicationUser applicationUser; applicationUser = new ApplicationUser { FirstName = firstname, LastName = lastname, UserName = email, Email = email, EmailConfirmed = emailConfirmed, IsSuperAdministrator = isSuperAdmin, }; if (!string.IsNullOrEmpty(password)) { userManager.CreateAsync(applicationUser, password).Wait(); } else { userManager.CreateAsync(applicationUser).Wait(); } return(applicationUser); }
private async Task CreateUser(string name, string email, string password, bool isAdmin) { var user = await userManager.FindUserByNameAsync(name); if (user == null) { user = new User() { UserName = name, Email = email }; var userResult = await userManager.CreateAsync(user, password); if (!userResult.Succeeded) { throw new InvalidOperationException("Failed to build user and roles"); } if (isAdmin) { var roleResult = await userManager.AddToRoleAsync(user, SystemRoles.Admin); var claimResult = await userManager.AddClaimAsync(user, new System.Security.Claims.Claim(SystemClaims.IsAdmin, "true", System.Security.Claims.ClaimValueTypes.Boolean)); if (!roleResult.Succeeded || !claimResult.Succeeded) { throw new InvalidOperationException("Failed to build user and roles"); } } } }
public async override Task <CommandResult> ExecuteAsync(CreateUserCommand command) { Guard.NotNull <CreateUserCommand>("CreateUserCommand", command); var applicationUser = new ApplicationUser { FirstName = command.FirstName, LastName = command.LastName, UserName = command.Username, Email = command.Username, EmailConfirmed = command.EmailConfirmed }; await userManager.CreateAsync(applicationUser, command.Password); await this.unitOfWork.UsersDBSet.AddAsync(new DomainModels.Users.User(applicationUser, command.TenantID)); await this.unitOfWork.SaveChangesAsync(); return(await base.ExecuteAsync(command)); }
public async Task <ActionResult <AuthResponse> > SignUp([FromBody] SignUpRequest request) { var identityUser = await _identityUserManager.CreateAsync(request.Email, request.Password); var command = new CreateUserCommand( Guid.Parse(identityUser.Id), request.Email, request.FirstName, request.LastName, request.NickName ); await CommandQueryDispatcher.SendCommandAsync(command); return(Ok(new AuthResponse( command.Id, command.Email, command.FirstName, command.LastName, command.NickName, _identityUserManager.GetTokenForUser(identityUser) ))); }