示例#1
0
        public BrowseProductViewModel(Product product)
        {
            this.product = product;

            foreach (var cardSet in product.CardSets())
            {
                foreach (var card in cardSet.Cards.OrderBy(x => x.Number))
                {
                    cardViewModels.Add(new CardViewModel(card));
                }
            }

            if (product.CardSets().Count() == 1)
            {
                var cardSet = string.Empty;

                var first = product.CardSets().FirstOrDefault();
                if (first != null)
                {
                    cardSet = first.Name.Replace(' ', '+');
                }

                searchUrl = string.Format("/Cards/Search?CardSet={0}&Sort=Set_Number", cardSet);
            }
            else
            {
                var query = string.Format("%2Bproduct%3A{0}", product.Name.Replace(":", string.Empty).Replace(' ', '_'));

                searchUrl = string.Format("/Cards/Search?Query={0}&Sort=Set_Number", query);
            }
        }
示例#2
0
        public ProductViewModel(Product product, Func <string, byte> getPopularity)
        {
            _product   = product;
            Popularity = 0;

            double popCardCount = 0;
            double totalPop     = 0;

            foreach (var set in product.CardSets().Where(setHasPopularity))
            {
                foreach (var card in set.Cards)
                {
                    var pop = getPopularity(card.Slug);
                    if (pop > 1)
                    {
                        popCardCount++;
                        totalPop += pop;
                    }
                }
            }

            if (popCardCount > 0 && totalPop > 0)
            {
                AveragePopularity = totalPop / popCardCount;
                if (AveragePopularity > 7)
                {
                    AveragePopularity = 7;
                }
                Popularity = (byte)Math.Round(AveragePopularity, MidpointRounding.AwayFromZero);
            }
        }