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)); }