Beispiel #1
0
        private IEnumerable <ResultCardDeckInfo> GetCardDeckInfo(ResultCardBeforeDeckInfo card, Guid userId)
        {
            var cardsInDecksForThisUserAndThisCard = DbContext.CardsInDecks
                                                     .AsNoTracking()
                                                     .Include(card => card.Deck)
                                                     .Where(cardInDeck => cardInDeck.Deck.Owner.Id == userId && cardInDeck.CardId == card.CardId)
                                                     .ToArray();

            return(cardsInDecksForThisUserAndThisCard.Select(cardInDeck => GetCardDeckInfo(cardInDeck)));
        }
Beispiel #2
0
        private IEnumerable <ResultCardDeckInfo> GetCardDeckInfo(ResultCardBeforeDeckInfo card, Guid userId, Dictionary <Guid, HeapingAlgorithm> heapingAlgoCache)
        {
            var cardsInDecksForThisUserAndThisCard = dbContext.CardsInDecks
                                                     .AsNoTracking()
                                                     .Include(card => card.Deck)
                                                     .Where(cardInDeck => cardInDeck.Deck.Owner.Id == userId && cardInDeck.CardId == card.CardId)
                                                     .ToArray();

            foreach (var cardInDeck in cardsInDecksForThisUserAndThisCard)
            {
                if (!heapingAlgoCache.ContainsKey(cardInDeck.DeckId))
                {
                    heapingAlgoCache.Add(cardInDeck.DeckId, HeapingAlgorithms.Instance.FromId(cardInDeck.Deck.HeapingAlgorithmId));
                }
            }

            return(cardsInDecksForThisUserAndThisCard.Select(cardInDeck => GetCardDeckInfo(cardInDeck, heapingAlgoCache)));
        }