JustBelot.Common.DealManager.AskForCardCombinations C# (CSharp) Method

AskForCardCombinations() private method

private AskForCardCombinations ( IPlayer player ) : IEnumerable
player IPlayer
return IEnumerable
        private IEnumerable<CardsCombination> AskForCardCombinations(IPlayer player)
        {
            var currentPlayerHand = this.playerCards[(int)this.game[player]];
            var allowedCombinations = currentPlayerHand.FindAvailableCardsCombinations().ToList();
            var playerCombinaions = player.AskForCardsCombinations(allowedCombinations.ToList());

            var finalCombinations = new List<CardsCombination>();
            foreach (var cardCombination in playerCombinaions)
            {
                if (allowedCombinations.Contains(cardCombination))
                {
                    finalCombinations.Add(cardCombination);
                    allowedCombinations.Remove(cardCombination);
                }
            }

            return finalCombinations;
        }