public IActionResult GetBorrowBooks([FromQuery] BorrowBookQueryFilter filters)
        {
            var borrowBooks     = _borrowBookService.GetBorrowBooks(filters);
            var borrowBooksDtos = _mapper.Map <IEnumerable <BorrowBookDto> >(borrowBooks);
            var metadata        = new Metadata
            {
                TotalCount      = borrowBooks.TotalCount,
                PageSize        = borrowBooks.PageSize,
                CurrentPage     = borrowBooks.CurrentPage,
                TotalPages      = borrowBooks.TotalPages,
                HasNextPage     = borrowBooks.HasNextPage,
                HasPreviousPage = borrowBooks.HasPreviousPage
            };

            var response = new ApiResponse <IEnumerable <BorrowBookDto> >(borrowBooksDtos)
            {
                Meta = metadata
            };

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

            return(Ok(response));
        }
        public PagedList <BorrowBookDto> GetBorrowBooks(BorrowBookQueryFilter filters)
        {
            filters.PageNumber = filters.PageNumber == 0 ? _paginationOptions.DefaultPageNumber : filters.PageNumber;
            filters.PageSize   = filters.PageSize == 0 ? _paginationOptions.DefaultPageSize : filters.PageSize;
            var borrowBooks = _unitOfWork.BorrowBookRepository.GetAllBorrowBookWithCustomerName();

            if (filters.CustomerId != null)
            {
                borrowBooks = borrowBooks.Where(x => x.CustomerId == filters.CustomerId);
            }

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

            if (filters.StaffId != null)
            {
                borrowBooks = borrowBooks.Where(x => x.StaffId == filters.StaffId);
            }
            var pagedBorrowBooks = PagedList <BorrowBookDto> .Create(borrowBooks, filters.PageNumber, filters.PageSize);

            return(pagedBorrowBooks);
        }
Esempio n. 3
0
        public Uri GetBorrowBookPaginationUri(BorrowBookQueryFilter filter, string actionUrl)
        {
            string baseUrl = $"{_baseUri}{actionUrl}";

            return(new Uri(baseUrl));
        }