public static bool DoesPlayerOneWin(Match match)
        {
            HandRating playerOneHandRating =
                GetHandRating(match.PlayerOneHand);
            HandRating playerTwoHandRating =
                GetHandRating(match.PlayerTwoHand);

            if (playerOneHandRating > playerTwoHandRating)
            {
                return(true);
            }
            else if (playerOneHandRating < playerTwoHandRating)
            {
                return(false);
            }

            return(TieBreaker(
                       playerOneHandRating,
                       match.PlayerOneHand,
                       match.PlayerTwoHand));
        }
        private static bool TieBreaker(
            HandRating handRating,
            Hand playerOneHand,
            Hand playerTwoHand)
        {
            switch (handRating)
            {
            case HandRating.RoyalFlush:
                return(true);

            case HandRating.StraightFlush:
                return(TieBreakStraightFlush(playerOneHand, playerTwoHand));

            case HandRating.FourOfAKind:
                return(TieBreakFourOfAKind(playerOneHand, playerTwoHand));

            case HandRating.FullHouse:
                return(TieBreakFullHouse(playerOneHand, playerTwoHand));

            case HandRating.Flush:
                return(TieBreakFlush(playerOneHand, playerTwoHand));

            case HandRating.Straight:
                return(TieBreakStraight(playerOneHand, playerTwoHand));

            case HandRating.ThreeOfAKind:
                return(TieBreakThreeOfAKind(playerOneHand, playerTwoHand));

            case HandRating.TwoPair:
                return(TieBreakTwoPair(playerOneHand, playerTwoHand));

            case HandRating.OnePair:
                return(TieBreakOnePair(playerOneHand, playerTwoHand));

            default:
                return(TieBreakHighCard(playerOneHand, playerTwoHand));
            }
        }