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); }