コード例 #1
0
 public List <PlayerResponse> GetPlayers()
 {
     _log.LogInformation($"Get all players");
     return(_gameContext.Players
            .Select(x => PlayerResponse.FromPlayer(x))
            .ToList());
 }
コード例 #2
0
 public List <PlayerResponse> GetPlayers(string gameId)
 {
     return(_gameContext.Players
            .Where(p => p.GameId == gameId)
            .Select(p => PlayerResponse.FromPlayer(p))
            .ToList());
 }
コード例 #3
0
        public GameStatusResponse GetStatusResponse(string gameId, string playerId)
        {
            var status = GetStatus(gameId);

            if (status == null)
            {
                return(null);
            }

            var gameStatus = GameStatusResponse.FromStatus(status);

            gameStatus.IsCurrentChoice    = status.ChoosingPlayerId == playerId;
            gameStatus.RemainingQuestions = RemainingQuestions(gameId);

            // Return previous choice
            if (!gameStatus.IsCurrentChoice)
            {
                gameStatus.ChoiceA = _playData.GetPreviousChoiceA();
                gameStatus.ChoiceB = _playData.GetPreviousChoiceB();
            }
            else if (gameStatus.ChoiceA == null || gameStatus.ChoiceB == null)
            {
                // TODO: Something with EF not populating the object, can look at it later
                var choiceA = _gameContext.Answers.Find(status.ChoiceAId);
                var choiceB = _gameContext.Answers.Find(status.ChoiceBId);
                gameStatus.ChoiceA = AnswerResponse.FromAnswer(choiceA);
                gameStatus.ChoiceB = AnswerResponse.FromAnswer(choiceB);
            }

            if (gameStatus.ChoosingPlayer == null)
            {
                var player = _gameContext.Players.Find(status.ChoosingPlayerId);
                if (player != null)
                {
                    gameStatus.ChoosingPlayer            = PlayerResponse.FromPlayer(player);
                    gameStatus.ChoosingPlayer.IsChoosing = true;
                }
            }

            return(gameStatus);
        }
コード例 #4
0
        public PlayerResponse GetPlayer(string playerId)
        {
            var player = _gameContext.Players.Find(playerId);

            return(player == null ? null : PlayerResponse.FromPlayer(player));
        }