public async Task <Unit> Handle(CreateOrUpdateUserCommand request, CancellationToken cancellationToken) { var userId = await _StreamingService.GetUserIdByAccessToken(request.AccessToken, cancellationToken); try { var user = await _Mediator.Send <User>(new GetUserByIdQuery { UserId = userId }); await _Mediator.Send(new UpdateUserTokensCommand { AccessToken = request.AccessToken, RefreshToken = request.RefreshToken, UserId = userId }); } catch (UserNotFoundException) { await _Mediator.Send(new AddUserCommand { AccessToken = request.AccessToken, RefreshToken = request.RefreshToken, UserId = userId }); } return(Unit.Value); }