コード例 #1
0
        private List <int> GetPages(BaseInclusionExclusionPage currentContent, int page, int count)
        {
            var pages = new List <int>();

            if (!currentContent.AllowPaging)
            {
                return(pages);
            }

            var totalPages = (count + currentContent.PageSize - 1) / currentContent.PageSize;

            pages = new List <int>();
            var startPage = page > 2 ? page - 2 : 1;

            for (var p = startPage; p < Math.Min((totalPages >= 5 ? startPage + 5 : startPage + totalPages), totalPages + 1); p++)
            {
                pages.Add(p);
            }
            return(pages);
        }
コード例 #2
0
        private void GetManaualInclusion(List <ProductTileViewModel> results,
                                         BaseInclusionExclusionPage baseInclusionExclusionPage,
                                         IMarket market,
                                         Currency currency)
        {
            var currentCount = results.Count;

            if (baseInclusionExclusionPage.ManualInclusion == null || !baseInclusionExclusionPage.ManualInclusion.Any())
            {
                return;
            }

            var inclusions = GetManualInclusion(baseInclusionExclusionPage.ManualInclusion).Select(x => x.GetProductTileViewModel(market, currency));

            if (baseInclusionExclusionPage.ManualInclusionOrdering == InclusionOrdering.Beginning)
            {
                results.InsertRange(0, inclusions);
                results = results.Take(baseInclusionExclusionPage.NumberOfProducts).ToList();
            }
            else
            {
                var total = currentCount + inclusions.Count();
                if (total > baseInclusionExclusionPage.NumberOfProducts)
                {
                    var num = baseInclusionExclusionPage.NumberOfProducts - inclusions.Count();
                    results = results.Take(num < 0 ? 0 : num).ToList();
                    results.AddRange(inclusions);
                }

                results = results.Take(baseInclusionExclusionPage.NumberOfProducts).ToList();

                if (baseInclusionExclusionPage.ManualInclusionOrdering == InclusionOrdering.Random)
                {
                    results = Shuffle(results);
                }
                else
                {
                    results.AddRange(inclusions);
                }
            }
        }