public bool Analyze(IEnumerable <HandHistories.Objects.Cards.Card> playerCards, BoardCards boardCards) { if (playerCards == null || boardCards == null || playerCards.Count() != 2 || boardCards.Count() == 0) { return(false); } if (HandAnalyzerHelpers.IsFlush(playerCards)) { var allCards = new List <HandHistories.Objects.Cards.Card>(playerCards); var boardCopy = new List <HandHistories.Objects.Cards.Card>(boardCards.Where(x => x.Suit == allCards.First().Suit)); allCards.AddRange(boardCopy); var royalFlushCards = HandAnalyzerHelpers.GetRoyalFlushCards(allCards); if (royalFlushCards != null) { if (!playerCards.Any(c => !royalFlushCards.Contains(c))) { return(true); } } } return(false); }