private async Task <TokenDTO> CreateTokensAndSave(User user) { RefreshToken refreshToken = user.RefreshTokens.FirstOrDefault(t => t.IsActive); if (refreshToken is null) { refreshToken = _tokenService.BuildRefreshToken(); user.RefreshTokens.Add(refreshToken); } _userService.UpdateAndSave(user); return(new TokenDTO { AccessToken = _tokenService.BuildAccessToken(_userService.GetMapped <UserTokenDTO>(user.Id), await _userManager.GetRolesAsync(user)), RefreshToken = refreshToken.Token, RefreshTokenExpiresIn = refreshToken.Expires }); }