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)); }
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)); }
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)); }
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)); }