예제 #1
0
        public async Task <ResponseNewRoundGameView> NewRound(RequestNewRoundGameView item)
        {
            long roundId = await CreateRoundAndReturnId(item.Game.Id);

            var playerList = new List <ViewModels.RequestModel.PlayerNewRoundGameViewItem>();

            playerList.Add(item.Player);
            playerList.AddRange(item.Bots);
            playerList.Add(item.Dealer);

            List <PlayerRoundHand> playerRoundHandList = CreatePlayerRoundHands(playerList, roundId);
            await _playerRoundHandRepository.CreateManyAsync(playerRoundHandList);

            playerRoundHandList = await _playerRoundHandRepository.GetPLayerRoundHandListByRoundId(roundId);

            var result = new ResponseNewRoundGameView();

            result.Game   = _maping.MapGameToGameNewRoundGameViewItem(item.Game);
            result.Round  = _maping.MapRoundToRoundNewRoundGameViewItem(await _roundRepository.Get(roundId));
            result.Player = _maping.MapPlayerToPlayerNewRoundGameViewItem(playerList
                                                                          .Where(x => x.Role == (int)PlayerRole.Player)
                                                                          .FirstOrDefault(),
                                                                          playerRoundHandList.Where(x => x.PlayerId == item.Player.Id)
                                                                          .SingleOrDefault());
            result.Dealer = _maping.MapPlayerToPlayerNewRoundGameViewItem(playerList.Where(x => x.Role == (int)PlayerRole.Dealer).FirstOrDefault(), playerRoundHandList.Where(x => x.PlayerId == item.Dealer.Id).SingleOrDefault());
            result.Bots   = _maping.MapPlayerListToPlayerNewRoundGameViewItem(playerList.Where(x => x.Role == (int)PlayerRole.Bot).ToList(), playerRoundHandList);
            return(result);
        }
        public async Task <ResponseNewRoundGameView> NewRound(RequestNewRoundGameView item)
        {
            ResponseNewRoundGameView model = await _gameService.NewRound(item);

            return(model);
        }