Пример #1
0
        public PagedList <ReturnBook> GetReturnBooks(ReturnBookQueryFilter filters)
        {
            filters.PageNumber = filters.PageNumber == 0 ? _paginationOptions.DefaultPageNumber : filters.PageNumber;
            filters.PageSize   = filters.PageSize == 0 ? _paginationOptions.DefaultPageSize : filters.PageSize;
            var returnBooks = _unitOfWork.ReturnBookRepository.GetAll();

            if (filters.BorrowId != null)
            {
                returnBooks = returnBooks.Where(x => x.BorrowId == filters.BorrowId);
            }
            if (filters.CustomerId != null)
            {
                returnBooks = returnBooks.Where(x => x.CustomerId == filters.CustomerId);
            }
            if (filters.ReturnTime != null)
            {
                returnBooks = returnBooks.Where(x => x.ReturnTime == filters.ReturnTime);
            }
            if (filters.StaffId != null)
            {
                returnBooks = returnBooks.Where(x => x.StaffId == filters.StaffId);
            }
            var pagedReturnBooks = PagedList <ReturnBook> .Create(returnBooks, filters.PageNumber, filters.PageSize);

            return(pagedReturnBooks);
        }
        public IActionResult GetReturnBooks([FromQuery] ReturnBookQueryFilter filters)
        {
            var returnBooks     = _returnBookService.GetReturnBooks(filters);
            var returnBooksDtos = _mapper.Map <IEnumerable <ReturnBookDto> >(returnBooks);
            var metadata        = new Metadata
            {
                TotalCount      = returnBooks.TotalCount,
                PageSize        = returnBooks.PageSize,
                CurrentPage     = returnBooks.CurrentPage,
                TotalPages      = returnBooks.TotalPages,
                HasNextPage     = returnBooks.HasNextPage,
                HasPreviousPage = returnBooks.HasPreviousPage
            };

            var response = new ApiResponse <IEnumerable <ReturnBookDto> >(returnBooksDtos)
            {
                Meta = metadata
            };

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

            return(Ok(response));
        }
Пример #3
0
        public Uri GetReturnBookPaginationUri(ReturnBookQueryFilter filter, string actionUrl)
        {
            string baseUrl = $"{_baseUri}{actionUrl}";

            return(new Uri(baseUrl));
        }