示例#1
0
        public async Task <ResponseLoadGameView> GetLoadGameView(long playerId, long sessionId)
        {
            (Player player, Player dealer, IEnumerable <Player> bots) = await _gameManager.GetAllGamePlayers(playerId, sessionId);

            ResponseLoadGameView gameView = LoadGameViewMapper.GetLoadGameView(sessionId, dealer, player, bots);

            IEnumerable <Card> playerCards = await _gameManager.GetCards(player.Id, sessionId);

            IEnumerable <Card> dealerCards = await _gameManager.GetCards(dealer.Id, sessionId);

            int playerScore = await _gameManager.GetHandScore(player.Id, sessionId);

            int dealerScore = await _gameManager.GetHandScore(dealer.Id, sessionId);

            gameView.Player.Hand = LoadGameViewMapper.GetHandLoadGameViewItem(playerCards, playerScore);
            gameView.Dealer.Hand = LoadGameViewMapper.GetHandLoadGameViewItem(dealerCards, dealerScore);

            foreach (var bot in gameView.Bots)
            {
                IEnumerable <Card> botCards = await _gameManager.GetCards(bot.Id, sessionId);

                int botScore = await _gameManager.GetHandScore(bot.Id, sessionId);

                bot.Hand = LoadGameViewMapper.GetHandLoadGameViewItem(botCards, botScore);
            }

            return(gameView);
        }
示例#2
0
        public async Task <ResponseLoadGameView> Load(long playerId)
        {
            GameSession lastSession = await _sessionManager.GetByPlayerId(playerId);

            ResponseLoadGameView gameView = await _gameViewManager.GetLoadGameView(playerId, lastSession.Id);

            return(gameView);
        }
示例#3
0
        public static ResponseLoadGameView GetLoadGameView(long sessionId, Player dealer, Player player, IEnumerable <Player> bots)
        {
            var responseLoadGameView = new ResponseLoadGameView
            {
                Player    = GetPlayerLoadGameViewItem(player),
                Dealer    = GetDealerLoadGameViewItem(dealer),
                Bots      = GetPlayerLoadGameViewItems(bots),
                SessionId = sessionId
            };

            return(responseLoadGameView);
        }
示例#4
0
        public async Task <IHttpActionResult> Load([FromBody] RequestLoadGameView request)
        {
            try
            {
                ResponseLoadGameView view = await _service.Load(request.PlayerId);

                return(Ok(view));
            }
            catch (Exception exception)
            {
                Log.Error(exception.ToString());
                return(InternalServerError(exception));
            }
        }