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)); } }
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); }
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); }