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)); }
public Uri GetReturnBookPaginationUri(ReturnBookQueryFilter filter, string actionUrl) { string baseUrl = $"{_baseUri}{actionUrl}"; return(new Uri(baseUrl)); }