public static List <BlogStory> GetPerPage(this List <BlogStory> stories, Int32 pageNumber, Int32 perPage, StorySort sortType, StoryFilter filter) { IEnumerable <BlogStory> query = stories; if (filter == StoryFilter.Published) { query = query.Where(x => x.PublishedDate.HasValue); } else if (filter == StoryFilter.UnPublished) { query = query.Where(x => !x.PublishedDate.HasValue); } query = sortType == StorySort.CreateDate ? query.OrderByDescending(x => x.CreateDate) : query.OrderByDescending(x => x.PublishedDate); return(query.Skip((pageNumber - 1) * perPage) .Take(perPage).ToList()); }
public static void SetStoryTagPageSliding(this IMemoryCache cache, MainPageViewModel viewModel, String alias, StorySort sort, Int32 minutesCount) { var key = $"{CacheKeys.TagStoriesPagePrefix}{alias}-{viewModel.PageNumberNumber}-{viewModel.PageSize}-{sort}"; var pages = cache.Get <List <String> >(CacheKeys.TagPagesStories); if (pages == null) { pages = new List <String> { key }; } else if (!pages.Contains(key)) { pages.Add(key); } cache.SetSliding(CacheKeys.TagPagesStories, pages, minutesCount); cache.SetSliding(key, viewModel, minutesCount); }
public static MainPageViewModel GetStoryTagPage(this IMemoryCache cache, String alias, Int32 page, Int32 count, StorySort sort) { return(cache.Get <MainPageViewModel>($"{CacheKeys.TagStoriesPagePrefix}{alias}-{page}-{count}-{sort}")); }