Example #1
0
        public IActionResult GetPosts([FromQuery] PostQueryFilters filters)
        {
            var posts = _postService.GetPosts(filters);

            posts.Reverse();
            var postsDto = _mapper.Map <IEnumerable <PostDto> >(posts);

            foreach (var item in postsDto)
            {
                var nameImage = item.Image;
                item.Image = _uriService.GetControllerUrl(Url.Action("GetImage", "Image", new { fileName = nameImage })).ToString();
            }

            var metaData = new MetaData
            {
                TotalCount      = posts.TotalCount,
                TotalPages      = posts.TotalPages,
                HasNextPage     = posts.HasNextPage,
                HasPreviousPage = posts.HasPreviousPage,
                CurrentPage     = posts.CurrentPage,
                PageSize        = posts.PageSize,
                NextPageUrl     = _uriService.GetPostPaginationUrl(filters, Url.RouteUrl(nameof(GetPosts))).ToString(),
                PreviousPageUrl = _uriService.GetPostPaginationUrl(filters, Url.RouteUrl(nameof(GetPosts))).ToString()
            };

            var response = new ApiResponse <IEnumerable <PostDto> >(postsDto)
            {
                Meta = metaData
            };

            Response.Headers.Add("x-Pagination", JsonConvert.SerializeObject(metaData));

            return(Ok(response));
        }
        public PagedList <Post> GetPosts(PostQueryFilters filters)
        {
            filters.PageNumber = filters.PageNumber == 0 ? _paginationOptions.DefaultPageNumber : filters.PageNumber;
            filters.PageSize   = filters.PageSize == 0 ? _paginationOptions.DefaultPageSize : filters.PageSize;

            var posts = _unitOfWork.PostRepository.GetAll();

            if (filters.UserId != null)
            {
                posts = posts.Where(x => x.UserId == filters.UserId);
            }

            if (filters.Date != null)
            {
                posts = posts.Where(x => x.Date.ToShortDateString() == filters.Date?.ToShortDateString());
            }

            if (filters.Description != null)
            {
                posts = posts.Where(x => x.Description.ToLower().Contains(filters.Description.ToLower()));
            }

            var pagedPosts = PagedList <Post> .Create(posts, filters.PageNumber, filters.PageSize);

            return(pagedPosts);
        }
        public IActionResult GetPosts([FromQuery] PostQueryFilters filters)
        {
            var posts     = _postService.GetPosts(filters);
            var postsDtos = _mapper.Map <IEnumerable <PostDTO> >(posts);

            var metadata = new Metadata
            {
                TotalCount      = posts.TotalCount,
                PageSize        = posts.PageSize,
                CurrentPage     = posts.CurrentPage,
                TotalPage       = posts.TotalPages,
                HasNextPage     = posts.HasNextPage,
                HasPreviousPage = posts.HasPreviousPage,
                NextPageUrl     = _uriService.GetPostpaginationUri(filters, Url.RouteUrl(nameof(GetPosts))).ToString(),
                PreviousPageUrl = _uriService.GetPostpaginationUri(filters, Url.RouteUrl(nameof(GetPosts))).ToString()
            };
            var responses = new ApiResponse <IEnumerable <PostDTO> >(postsDtos)
            {
                Meta = metadata
            };

            Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metadata));

            return(Ok(responses));
        }
Example #4
0
        public IActionResult GetPosts([FromQuery] PostQueryFilters filters)  //recibiendo parametros y decorandolo en una entidad
        {
            var posts = postService.GetPosts(filters);

            var postsDto = mapper.Map <IEnumerable <PostDTO> >(posts);

            var metadata = new Metadata
            {
                TotalCount      = posts.TotalCount,
                PageSize        = posts.PageSize,
                CurrentPage     = posts.CurrrentPage,
                TotalPage       = posts.TotalPages,
                HasNextPage     = posts.HasNextPage,
                HasPreviousPage = posts.HasPreviousPage,
                NextPageUrl     = uriService.GetPostPagination(filters, Url.RouteUrl(nameof(GetPost))).ToString(),
                PreviousPageUrl = uriService.GetPostPagination(filters, Url.RouteUrl(nameof(GetPost))).ToString()
            };

            var response = new ApiResponse <IEnumerable <PostDTO> >(postsDto)
            {
                Meta = metadata
            };

            Response.Headers.Add("x-Pagination", JsonConvert.SerializeObject(metadata));
            return(Ok(response));
        }
Example #5
0
        public IActionResult GetPosts([FromQuery] PostQueryFilters filter)
        {
            var posts    = _postService.GetPosts(filter);
            var postsDTO = _mapper.Map <IEnumerable <PostDTO> >(posts);
            var response = new ApiResponse <IEnumerable <PostDTO> >(postsDTO);
            var metaData = new MetaData()
            {
                TotalPages      = posts.TotalPages,
                TotalCount      = posts.TotalCount,
                CurrentPage     = posts.CurrentPage,
                HasNextPage     = posts.HasNextPage,
                PageSize        = posts.PageSize,
                HasPreviousPage = posts.HasPreviousPage,
                NextUrlPage     = _urlService.GetPaginationUrl(filter, Url.RouteUrl(nameof(GetPosts))).ToString()
            };

            response.MetaData = metaData;
            Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metaData));
            return(Ok(response));
        }
Example #6
0
        public Uri GetPaginationUrl(PostQueryFilters filters, string actionrl)
        {
            string baseUri = $"{_baseUrl}{actionrl}";

            return(new Uri(baseUri));
        }
        public Uri GetPostPaginationUrl(PostQueryFilters filter, string actionUrl)
        {
            string baseUrl = $"{_urlBase}{actionUrl}";

            return(new Uri(baseUrl));
        }
        public Uri GetPostpaginationUri(PostQueryFilters filters, string actionUri)
        {
            string baseUrl = $"{_baseUri}{actionUri}";

            return(new Uri(baseUrl));
        }
        public Uri GetPostPagination(PostQueryFilters filters, string actionUrl)
        {
            string _baseUrl = $"{baseUrl}{actionUrl}";

            return(new Uri(_baseUrl));
        }