Ejemplo n.º 1
0
        public async Task <RoundViewModel> StartNextRoundForPlayers(List <UserViewModel> players)
        {
            foreach (var player in players)
            {
                if (player.PlayerRole != PlayerRole.Dealer &&
                    player.PlayerStatus == PlayerStatus.DefaultValue)
                {
                    await CreateNextRound(player);
                }
                if (player.PlayerRole == PlayerRole.Dealer)
                {
                    List <Round> rounds = await _roundRepository.GetRoundsForPlayer(player.GameId, player.UserName);

                    AddCardViewModelToPlayer(rounds, player);
                }
            }
            var roundModel = new RoundViewModel();

            roundModel.Users = players;

            await CheckPlayersForMoreThanTwentyOne(roundModel);

            var humanPlayer = GetHumanPlayer(roundModel.Users);
            var dealer      = GetDealer(roundModel.Users);

            if (humanPlayer.PlayerStatus == PlayerStatus.Lose)
            {
                await CheckDealer(roundModel.Users);

                return(await FinalPointsCount(roundModel.Users));
            }
            return(roundModel);
        }