Exemplo n.º 1
0
        public PagedList <BookShelfDto> GetBookShelves(BookShelfQueryFilter filters)
        {
            filters.PageNumber = filters.PageNumber == 0 ? _paginationOptions.DefaultPageNumber : filters.PageNumber;
            filters.PageSize   = filters.PageSize == 0 ? _paginationOptions.DefaultPageSize : filters.PageSize;
            var bookShelves = _unitOfWork.BookShelfRepository.GetBookShelvesAndLocationName();

            if (filters.LocationId != null)
            {
                bookShelves = bookShelves.Where(x => x.LocationId == filters.LocationId);
            }

            if (filters.BookGroupId != null)
            {
                var books = _unitOfWork.BookRepository.GetBookByBookGroup(filters.BookGroupId);
                //var bookDrawers = _unitOfWork.BookDrawerRepository.GetBookDrawerByListBook(books);
                //var drawers = _unitOfWork.DrawerRepository.GetAllDrawers(bookDrawers);
                //bookShelves = _unitOfWork.BookShelfRepository.GetBookShelvesByDrawer(drawers);
            }

            if (filters.Name != null)
            {
                bookShelves = bookShelves.Where(x => x.Name.ToLower().Contains(filters.Name.ToLower()));
            }
            var pagedBookShelves = PagedList <BookShelfDto> .Create(bookShelves, filters.PageNumber, filters.PageSize);

            return(pagedBookShelves);
        }
        public IActionResult GetBookShelves([FromQuery] BookShelfQueryFilter filters)
        {
            var bookShelves     = _bookShelfService.GetBookShelves(filters);
            var bookShelvesDtos = _mapper.Map <IEnumerable <BookShelfDto> >(bookShelves);
            var metadata        = new Metadata
            {
                TotalCount      = bookShelves.TotalCount,
                PageSize        = bookShelves.PageSize,
                CurrentPage     = bookShelves.CurrentPage,
                TotalPages      = bookShelves.TotalPages,
                HasNextPage     = bookShelves.HasNextPage,
                HasPreviousPage = bookShelves.HasPreviousPage,
                NextPageUrl     = bookShelves.NextPage,
                PreviousPageUrl = bookShelves.PreviousPage
            };

            var response = new ApiResponse <IEnumerable <BookShelfDto> >(bookShelvesDtos)
            {
                Meta = metadata
            };

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

            return(Ok(response));
        }
Exemplo n.º 3
0
        public Uri GetBookShelfPaginationUri(BookShelfQueryFilter filter, string actionUrl)
        {
            string baseUrl = $"{_baseUri}{actionUrl}";

            return(new Uri(baseUrl));
        }