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