public async Task <IActionResult> Register([FromBody] RegisterModelDto registerModel) { if (!ModelState.IsValid) { return(BadRequest(new BadRequestError("Password and username required."))); } var newUser = new User() { FirstName = registerModel.FirstName.ToLowerInvariant(), Email = registerModel.Email.ToLowerInvariant(), Username = registerModel.Username.ToLowerInvariant(), }; // Username unique? var isUsernameUnique = await _wpbService.UsernameUnique(newUser.Username); if (!isUsernameUnique) { return(BadRequest(new BadRequestError($"Username: {registerModel.Username} is already in use."))); } // Email unique? var isEmailUnique = await _wpbService.EmailUnique(newUser.Email); if (!isEmailUnique) { return(BadRequest(new BadRequestError($"Email: {registerModel.Email} is already in use."))); } // Add user await _wpbService.CreateUserAsync(newUser, registerModel.Password); // Build new user token var tokenString = GenerateToken(newUser); // This is just a regular member so we don't need to create any claims // Add user claim /*var newClaim = new UserClaim() * { * UserId = newUser.Id, * ClaimName = WpbClaims.ReadTeamData * };*/ return(Ok( new { Id = newUser.Id.ToString(), newUser.Username, newUser.FirstName, newUser.Email, Token = tokenString })); }