Example #1
0
        //[Cached(600)]
        public async Task <ActionResult <IEnumerable <Post> > > GetAll([FromQuery] PaginationQuery query)
        {
            var pagination = mapper.Map <PaginationFilter>(query);
            var posts      = await service.GetPosts(pagination);

            var postsResponse = mapper.Map <List <PostResponse> >(posts);

            if (pagination == null || pagination.PageNumber < 1 || pagination.PageSize < 1)
            {
                return(Ok(new PagedResponse <PostResponse>(postsResponse)));
            }

            var paginationResponse = PaginationHeplers.CreatePaginationResponse(uriService, pagination, postsResponse);

            return(Ok(paginationResponse));
            //List<PostResponse> response = posts.Select(e => new PostResponse
            //{
            //    Id = e.Id,
            //    UserId = e.UserId,
            //    Name = e.Name,
            //    Tags = e.Tags.Select(x => new TagResponse { Name = x.Name})
            //}).ToList();

            //var response = mapper.Map<List<PostResponse>>(posts);
            //return  Ok(response);

            //Pagination response
            //return Ok(new Response<List<PostResponse>>(mapper.Map<List<PostResponse>>(response)));
            //return Ok(new PagedResponse<PostResponse>(mapper.Map<List<PostResponse>>(response)));
        }
Example #2
0
        public async Task <PagedPostResponse> GetPagedAsync(PaginationQuery paginationQuery)
        {
            var paginationFilter = new PaginationFilter
            {
                PageNumber = paginationQuery.PageNumber,
                PageSize   = paginationQuery.PageSize
            };

            var postsDto = await postAppService.GetPosts();

            if (paginationFilter == null || paginationFilter.PageNumber < 1 || paginationFilter.PageSize < 1)
            {
                return(new PagedPostResponse(postsDto));
            }

            var postInCurrentPage = await postAppService.GetPagedPosts(paginationFilter.PageNumber, paginationFilter.PageSize);

            var paginationResponse = PaginationHeplers.CreatePaginationResponse(uriService, paginationFilter, postInCurrentPage);

            return(paginationResponse);
        }