public PagedList <BorrowDetailDto> GetBorrowDetails(BorrowDetailQueryFilter filters) { filters.PageNumber = filters.PageNumber == 0 ? _paginationOptions.DefaultPageNumber : filters.PageNumber; filters.PageSize = filters.PageSize == 0 ? _paginationOptions.DefaultPageSize : filters.PageSize; var borrowDetails = _unitOfWork.BorrowDetailRepository.GetAllBorrowDetailAndBookName(); var borrowBooks = _unitOfWork.BorrowBookRepository.GetAllBorrowBookWithCustomerName(); if (filters.CustomerId != null) { borrowBooks = borrowBooks.Where(x => x.CustomerId == filters.CustomerId); borrowDetails = _unitOfWork.BorrowDetailRepository.GetBorrowDetailWithListBorrow(borrowBooks); } if (filters.BorrowId != null) { borrowDetails = borrowDetails.Where(x => x.BorrowId == filters.BorrowId); } if (filters.BookId != null) { borrowDetails = borrowDetails.Where(x => x.BookId == filters.BookId); } var pagedBorrowDetails = PagedList <BorrowDetailDto> .Create(borrowDetails, filters.PageNumber, filters.PageSize); return(pagedBorrowDetails); }
public IActionResult GetBorrowDetails([FromQuery] BorrowDetailQueryFilter filters) { var borrowDetails = _borrowDetailService.GetBorrowDetails(filters); var borrowDetailsDtos = _mapper.Map <IEnumerable <BorrowDetailDto> >(borrowDetails); var metadata = new Metadata { TotalCount = borrowDetails.TotalCount, PageSize = borrowDetails.PageSize, CurrentPage = borrowDetails.CurrentPage, TotalPages = borrowDetails.TotalPages, HasNextPage = borrowDetails.HasNextPage, HasPreviousPage = borrowDetails.HasPreviousPage }; var response = new ApiResponse <IEnumerable <BorrowDetailDto> >(borrowDetailsDtos) { Meta = metadata }; Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metadata)); return(Ok(response)); }
public Uri GetBorrowDetailPaginationUri(BorrowDetailQueryFilter filter, string actionUrl) { string baseUrl = $"{_baseUri}{actionUrl}"; return(new Uri(baseUrl)); }