Exemple #1
0
        public async Task <PagedList <Post> > GetPosts(GetPostsParams postsParams)
        {
            var posts = await database.PostRepository.Fetch();

            if (postsParams.CategoryId != null)
            {
                posts = posts.Where(p => p.CategoryId == postsParams.CategoryId);
            }
            if (postsParams.Username != null)
            {
                posts = posts.Where(p => p.Username.ToLower().Contains(postsParams.Username.ToLower()));
            }
            if (postsParams.Title != null)
            {
                posts = posts.Where(p => p.Title.ToLower().Contains(postsParams.Title.ToLower()));
            }
            switch (postsParams.SortType)
            {
            case Enums.PostSortType.UpdatedAscending:
                posts = posts.OrderBy(p => p.DateUpdated);
                break;

            case Enums.PostSortType.UpdatedDescending:
                posts = posts.OrderByDescending(p => p.DateUpdated);
                break;

            default:
                break;
            }

            return(posts.ToPagedList <Post>(postsParams.PageNumber, postsParams.PageSize));
        }
Exemple #2
0
 public async Task <IActionResult> Details(CategoryViewModel viewModel, [FromQuery] int pageNumber = 1)
 {
     return(View(viewModel.FilterPosts(await postService.GetPosts(GetPostsParams.Create
                                                                  (
                                                                      viewModel.TitleFilter,
                                                                      viewModel.Id,
                                                                      viewModel.Username,
                                                                      viewModel.SortType
                                                                  ).CurrentPage(pageNumber) as GetPostsParams), viewModel.Name)));
 }