Beispiel #1
0
        public virtual ActionResult GetBlogPostsList(PostsListType listType, int?page, int?pageSize, int?catId, DateTime?fromDate, ViewStyles?style, NumberOfCol?numberOfCol, bool?showPager)
        {
            if (!CurrentSettings.EnableBlog)
            {
                return(View("PageNotFound"));
            }

            var currentUser = UserManager.FindById(User.Identity.GetUserId());
            IPagedList <TblBlogPosts> posts = null;

            switch (listType)
            {
            case PostsListType.Newest:
                posts = _blogPostService.GetNewItems(page ?? 1, pageSize ?? 24, catId, fromDate);
                break;

            case PostsListType.MostPopular:
                posts = _blogPostService.GetPopularItems(page ?? 1, pageSize ?? 24, catId, fromDate);
                break;

            case PostsListType.HotList:
                posts = _blogPostService.GetHotList(page ?? 1, pageSize ?? 24, catId, fromDate);
                break;

            case PostsListType.Featured:
                posts = _blogPostService.GetFeaturedItems(page ?? 1, pageSize ?? 24, catId, fromDate);
                break;
            }
            var model = new PostsListModel()
            {
                PostsList          = _postModelFactory.PreparePostCardViewModel(posts, currentUser, Url),
                ViewStyle          = style ?? ViewStyles.Normal,
                PageIndex          = page ?? 1,
                PageSize           = pageSize,
                PostsListType      = listType,
                FromDate           = fromDate,
                FilterByCategoryId = catId,
                ShowPager          = showPager ?? true,
                NumberOfCol        = numberOfCol ?? NumberOfCol.Four
            };

            return(View("Partials/_PostsList", model));
        }
Beispiel #2
0
        public async Task <IActionResult> List([FromServices] GetPostsQuery getPostQuery, string categoryCode = null, int page = 1)
        {
            if (page < 1)
            {
                page = 1;
            }

            IQueryable <Post> query      = getPostQuery.ForCategory(categoryCode).Build();
            double            pagesCount = Math.Ceiling((double)query.Count() / postsPerPage);

            List <Data.Post> posts = await query.Paginate((page - 1) *postsPerPage, postsPerPage).ToListAsync();

            var model = new PostsListModel
            {
                Posts            = posts,
                CurrentPageIndex = page,
                TotalPageNumber  = pagesCount
            };

            return(Json(model));
        }