private void RaiseCardSelectorView(ICardCollectionContainer container, CardSelectorType selectorType) { IsCalculateEquityError = false; CardSelectorRequest.Raise( new CardSelectorNotification { Source = this, Title = string.Empty, CardsContainer = container, SelectorType = selectorType, UsedCards = GetProhibitedCardsFor(container), BoardCards = Board.Cards.Where(x => x.Rank != RangeCardRank.None && x.Suit != RangeCardSuit.None).ToList(), EquityCalculatorMode = equityCalculatorMode }, returned => { if (returned != null && returned.Confirmed) { if (returned.ReturnType.Equals(CardSelectorReturnType.Cards)) { container.SetCollection(returned.CardsContainer.Cards); } else if (returned.ReturnType.Equals(CardSelectorReturnType.Range)) { container.SetRanges(returned.CardsContainer.Ranges); (container as PlayerModel)?.CheckBluffToValueBetRatio(CountOpponents(), SelectedStreet); } ClearEquity(); } }); }
private List <CardModel> GetProhibitedCardsFor(ICardCollectionContainer container) { var usedCards = new List <CardModel>(); foreach (var player in PlayersList.Where(x => x != container)) { usedCards.AddRange(player.Cards.Where(x => x.Rank != RangeCardRank.None && x.Suit != RangeCardSuit.None)); } if (Board != container) { usedCards.AddRange(Board.Cards.Where(x => x.Rank != RangeCardRank.None && x.Suit != RangeCardSuit.None)); } return(usedCards); }