Пример #1
0
        public async Task <IHttpActionResult> Draw([FromBody] long gameId)
        {
            try
            {
                var drawGameViewModel = new DrawGameView();
                drawGameViewModel = await _gameService.DrawCard(gameId);

                return(Ok(drawGameViewModel));
            }
            catch (Exception exception)
            {
                _logger.Error(exception.Message);
                throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, exception.Message));
            }
        }
Пример #2
0
        private async Task <DrawGameView> GetDrawGameView(long gameId)
        {
            var          drawGameView = new DrawGameView();
            GameViewItem getGameView  = await GetGameViewItem(gameId);

            getGameView.Options = UserMessages.OptionDrawCard;

            if (getGameView.Human.Hand.CardsInHandValue >= Constant.WinValue)
            {
                StandGameView standGameView = await Stand(gameId);

                getGameView = Mapper.Map <StandGameView, GameViewItem>(standGameView);
            }

            drawGameView = Mapper.Map <GameViewItem, DrawGameView>(getGameView);

            return(drawGameView);
        }
Пример #3
0
        public async Task <DrawGameView> DrawCard(long gameId)
        {
            var  drawGameView = new DrawGameView();
            long humanId      = await _playerInGameRepository.GetHumanIdByGameId(gameId);

            List <long> deck = await GetDeckInGame(gameId);

            int humanBetValue = await _playerInGameRepository.GetBetByPlayerId(humanId, gameId);

            if (humanBetValue == 0)
            {
                throw new Exception(UserMessages.NoBetValue);
            }

            deck = await AddCardToPlayerHand(humanId, deck, gameId);

            drawGameView = await GetDrawGameView(gameId);

            return(drawGameView);
        }