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); }
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); } } }