public async Task <ContinueRoundResponseViewModel> ResumeAfterContinueRound(long gameId) { List <GamePlayer> players = (await _gamePlayerRepository.GetAllWithCards(gameId)).ToList(); ContinueRoundResponseViewModel continueRoundResponseViewModel = GetContinueRoundResponse(players); return(continueRoundResponseViewModel); }
private ContinueRoundResponseViewModel GetContinueRoundResponse(List <GamePlayer> players) { GamePlayer human = players.Where(m => m.Player.Type == (int)PlayerType.Human).First(); string humanRoundResult = _gamePlayerProvider.GetHumanRoundResult(human.BetPayCoefficient); ContinueRoundResponseViewModel continueRoundResponseViewModel = CustomMapper.GetContinueRoundResponseViewModel(players, human.GameId, humanRoundResult); return(continueRoundResponseViewModel); }
public async Task <IHttpActionResult> ResumeAfterContinueRound(long gameId) { try { ContinueRoundResponseViewModel continueRoundResponseViewModel = await _gameService.ResumeAfterContinueRound(gameId); return(Ok(continueRoundResponseViewModel)); } catch (Exception ex) { string message = $"{ex.Source}|{ex.TargetSite}|{ex.StackTrace}|{ex.Message}"; _logger.Error(message); return(BadRequest(GameMessageHelper.GameError)); } }
public static ContinueRoundResponseViewModel GetContinueRoundResponseViewModel(List <GamePlayer> players, long gameId, string humanRoundResult) { GamePlayer human = players.Where(m => m.Player.Type == (int)PlayerType.Human).First(); GamePlayer dealer = players.Where(m => m.Player.Type == (int)PlayerType.Dealer).First(); players.Remove(human); players.Remove(dealer); var continueRoundResponseViewModel = new ContinueRoundResponseViewModel(); continueRoundResponseViewModel.Dealer = Mapper.Map <GamePlayer, GamePlayerItem>(dealer); continueRoundResponseViewModel.Human = Mapper.Map <GamePlayer, GamePlayerItem>(human); continueRoundResponseViewModel.Bots = Mapper.Map <IEnumerable <GamePlayer>, List <GamePlayerItem> >(players); continueRoundResponseViewModel.RoundResult = humanRoundResult; continueRoundResponseViewModel.Id = gameId; return(continueRoundResponseViewModel); }
public async Task <IHttpActionResult> ContinueRound(ContinueRoundRequestViewModel continueRoundRequestViewModel) { try { if (continueRoundRequestViewModel == null) { return(BadRequest(GameMessageHelper.ReceivedDataError)); } ContinueRoundResponseViewModel continueRoundResponseViewModel = await _gameService.ContinueRound(continueRoundRequestViewModel); return(Ok(continueRoundResponseViewModel)); } catch (Exception ex) { string message = $"{ex.Source}|{ex.TargetSite}|{ex.StackTrace}|{ex.Message}"; _logger.Error(message); return(BadRequest(GameMessageHelper.GameError)); } }
public async Task <ContinueRoundResponseViewModel> ContinueRound(ContinueRoundRequestViewModel continueRoundRequestViewModel) { List <GamePlayer> players = (await _gamePlayerRepository.GetAllWithCards(continueRoundRequestViewModel.GameId)).ToList(); if (continueRoundRequestViewModel.ContinueRound) { players.Where(m => m.Player.Type == (int)PlayerType.Human).First().BetPayCoefficient = BetValueHelper.DefaultCoefficient; } List <PlayerCard> playerCardsInserted = await DistributeSecondCards(players, continueRoundRequestViewModel.GameId); _gamePlayerProvider.DefinePayCoefficientsAfterRoundContinue(players); await _gamePlayerRepository.UpdateManyAfterContinueRound(players); await _gameRepository.UpdateStage(continueRoundRequestViewModel.GameId, (int)GameStage.ContinueRound); List <Log> logs = LogHelper.GetContinueRoundLogs(players, playerCardsInserted, continueRoundRequestViewModel.GameId); await _logRepository.CreateMany(logs, ToStringHelper.GetTableName(typeof(Log))); ContinueRoundResponseViewModel continueRoundResponseViewModel = GetContinueRoundResponse(players); return(continueRoundResponseViewModel); }