public async Task <AuthenticationResult> RegisterAsync(UserAccountRegistrationRequest request) { var existingUser = await _userManager.FindByEmailAsync(request.Email); if (existingUser != null) { return(new AuthenticationResult { Errors = new[] { "User with this email address already exists" } }); } var newUser = new User { Email = request.Email, UserName = request.Username }; var createdUser = await _userManager.CreateAsync(newUser, request.Password); if (!createdUser.Succeeded) { return(new AuthenticationResult { Errors = createdUser.Errors.Select(x => x.Description) }); } return(await GenerateAuthenticationResultForUserAsync(newUser)); }
public async Task <IActionResult> Register([FromBody] UserAccountRegistrationRequest request) { if (!ModelState.IsValid) { return(BadRequest(new AuthFailedResponse { Errors = ModelState.Values.SelectMany(i => i.Errors.Select(j => j.ErrorMessage)) })); } var authResponse = await _userAccountService.RegisterAsync(request); if (!authResponse.Success) { return(BadRequest ( new AuthFailedResponse { Errors = authResponse.Errors } )); } return(Ok ( new AuthSuccessResponse { Token = authResponse.Token, RefreshToken = authResponse.RefreshToken } )); }