public async Task <IActionResult> AddPlayerToGame([FromBody] AddPlayerToGameRequest addPlayerToGameRequest)
        {
            _logger?.LogDebug($"AddPlayerToGame for game: {addPlayerToGameRequest.CatanGame.Id} and user: {addPlayerToGameRequest.UserName} ");
            // TODO: add authentication token when validating user exists
            try
            {
                HttpResponseMessage userResponse = await _sHttpCient.GetAsync($"{_usersEndpoint}" + $"account/SearchPlayer?userName={addPlayerToGameRequest.UserName}");

                if (!userResponse.IsSuccessStatusCode)
                {
                    _logger?.LogError($"AddPlayerToGame Unexpected response from 'Players' endpoint. User: {addPlayerToGameRequest.UserName}. Game: {addPlayerToGameRequest.CatanGame.Id}");
                    return(StatusCode(500));
                }
            }
            catch (Exception ex)
            {
                _logger?.LogError($"AddPlayerToGame Error while tring to reach 'Players' endpoint for user {addPlayerToGameRequest.UserName} and game {addPlayerToGameRequest.CatanGame.Id}", ex);
                return(Problem(statusCode: 400, title: "Invalid user"));
            }
            await _catanGameBusinessLogic.AddPlayerToGame(addPlayerToGameRequest.CatanGame, addPlayerToGameRequest.UserName);

            return(Ok());
        }
        public async Task <ActionResult <AddPlayerToGameResponse> > AddPlayer(Guid gameId, AddPlayerToGameRequest request)
        {
            var playerId = Guid.NewGuid();

            var result = await _mediator.Send(new AddPlayer
            {
                GameId = gameId, PlayerId = playerId, GameSecret = request.Secret, Gravatar = request.Gravatar, PlayerName = request.PlayerName
            });

            if (!result.IsSuccess)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, result.ErrorMessage));
            }

            await _gameHub.Clients.Groups(gameId.ToString()).PlayerAddedToGame(new PlayerMessage {
                GameId = gameId, PlayerId = playerId, PlayerName = request.PlayerName, Gravatar = request.Gravatar
            });

            return(Ok(new AddPlayerToGameResponse
            {
                PlayerId = playerId,
                Token = new AccessToken(result.Message)
            }));
        }