public async Task <ResponseSurrenderGameView> GetSurrenderGameView(long playerId, long sessionId) { (Player player, Player dealer, IEnumerable <Player> bots) = await _gameManager.GetAllGamePlayers(playerId, sessionId); ResponseSurrenderGameView gameView = SurrenderGameViewMapper.GetSurrenderGameView(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 = SurrenderGameViewMapper.GetHandSurrenderGameViewItem(playerCards, playerScore); gameView.Dealer.Hand = SurrenderGameViewMapper.GetHandSurrenderGameViewItem(dealerCards, dealerScore); (int playerGameState, string playerGameResult) = _gameResultManager.GetGameStateResult(playerScore, dealerScore); gameView.Player.GameResult.State = playerGameState; gameView.Player.GameResult.Result = playerGameResult; foreach (var bot in gameView.Bots) { IEnumerable <Card> botCards = await _gameManager.GetCards(bot.Id, sessionId); int botScore = await _gameManager.GetHandScore(bot.Id, sessionId); (int botGameState, string botGameResult) = _gameResultManager.GetGameStateResult(botScore, dealerScore); bot.Hand = SurrenderGameViewMapper.GetHandSurrenderGameViewItem(botCards, botScore); bot.GameResult.State = botGameState; bot.GameResult.Result = botGameResult; } return(gameView); }
public static ResponseSurrenderGameView GetSurrenderGameView(long sessionId, Player dealer, Player player, IEnumerable <Player> bots) { var responseSurrenderGameView = new ResponseSurrenderGameView { Player = GetPlayerSurrenderGameViewItem(player), Dealer = GetDealerSurrenderGameViewItem(dealer), Bots = GetPlayerSurrenderGameViewItems(bots), SessionId = sessionId }; return(responseSurrenderGameView); }
public async Task <IHttpActionResult> Surrender([FromBody] RequestSurrenderGameView request) { try { ResponseSurrenderGameView view = await _service.Surrender(request.PlayerId, request.SessionId); return(Ok(view)); } catch (Exception exception) { Log.Error(exception.Message); return(InternalServerError(exception)); } }
public async Task <ResponseSurrenderGameView> Surrender(long playerId, long sessionId) { await _historyManager.Create(playerId, UserMessages.ChoseToSurrenderMessage, sessionId); await _cardManager.ClearPlayerHand(playerId, sessionId); await GiveCardsToBots(sessionId); await GiveCardsToDealer(sessionId); ResponseSurrenderGameView gameView = await _gameViewManager.GetSurrenderGameView(playerId, sessionId); await _sessionManager.Close(sessionId); return(gameView); }