예제 #1
0
        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);
        }