in src/Services/User/User.API/Controllers/AccountController.cs [60:97]
public async Task<IActionResult> Register([FromBody] RegisterRequest registerForm, CancellationToken cancellationToken)
{
if (!ModelState.IsValid)
{
return BadRequest(Result.Failure(ModelState.ToInnerErrors()));
}
(Result createResult, var userToken) = await identityService.CreateUserAsync(registerForm.UserToken,
registerForm.Username,
registerForm.Password);
if (!createResult.Succeeded)
{
return createResult.Status == ResultStatus.Validation
? BadRequest(createResult)
: InternalServerError(createResult);
}
try
{
userStateService.RegisterUser(registerForm.UserToken, registerForm.Username);
}
catch (Exception ex)
{
Result deleteResult = await identityService.DeleteUserAsync(userToken);
return InternalServerError(
Result.Failure(deleteResult.Errors.Append(new InnerError(ErrorTarget.UserStateFailure, ex.Message))));
}
(Result tokenResult, Token tokens) = await identityService.PostRegisterLoginAsync(registerForm.Username,
registerForm.Password,
cancellationToken);
return tokenResult.Succeeded
? Ok(tokens)
: InternalServerError(tokenResult);
}