Пример #1
0
        public async Task <ContinueRoundResponseViewModel> ResumeAfterContinueRound(long gameId)
        {
            List <GamePlayer> players = (await _gamePlayerRepository.GetAllWithCards(gameId)).ToList();
            ContinueRoundResponseViewModel continueRoundResponseViewModel = GetContinueRoundResponse(players);

            return(continueRoundResponseViewModel);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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));
            }
        }
Пример #4
0
        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);
        }
Пример #5
0
        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));
            }
        }
Пример #6
0
        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);
        }