public async Task <RawJwtToken> SignUp(IOperation operation, UserRegistrationEntity entity) { if (await userDataStore.GetUserIdentityClaimsByAccessData(operation, entity.Email) != null) { throw CommonExceptions.UserHasAlreadyExist(operation); } var user = await userDataStore.CreateUser(operation, entity); if (user == null) { throw CommonExceptions.RegistrationIsFailed(operation); } var identity = GetIdentity(user); var token = new RawJwtToken { AccessToken = GenerateAccessToken(identity.Claims.ToList()), RefreshToken = AuthenticationUtils.GenerateRefreshToken() }; await userDataStore.AddRefreshToken(operation, user.Id, token.RefreshToken); return(token); }