public Hand NextHand(Game game)
        {
            Random random = new Random();

            Hand hand = new Hand()
            {
                Id = game.HandNumber + 1,
                Stage = Stage.Start
            };

            Hand previousHand = GetPreviousHand(game);

            if (previousHand == null)
            {
                hand.BigBlind = game.InitialChipCount / 50;
                hand.SmallBlind = game.InitialChipCount / 100;
                hand.Dealer = random.Next(game.Players.Count);
            }
            else
            {
                hand.BigBlind = previousHand.BigBlind;
                hand.SmallBlind = previousHand.SmallBlind;
                hand.Dealer = (previousHand.Dealer + 1) % game.Players.Count;
            }

            game.Hands.Add(hand);

            hand.Deck = GetNewDeck();

            foreach (Player player in game.Players)
            {
                PlayerHand playerHand = new PlayerHand()
                {
                    Player = player,
                    Hand = hand,
                    HasFolded = false
                };

                for (int i = 0; i < CardsPerPlayerHand; i++)
                {
                    playerHand.Cards.Add(DrawCard(hand.Deck, random));
                }

                hand.PlayerHands.Add(playerHand);
            }

            return hand;
        }
 private Hand GetPreviousHand(Game game)
 {
     return game.Hands.LastOrDefault();
 }