public void GetBooksFiltered() { var resourceParams = new BookResourceParameters { Genre = "fic_fantasy" }; var res = _bookService.GetBooks(resourceParams); Assert.IsType <List <BookDto> >(res); }
public async Task <PagedList <Book> > GetBooks(BookResourceParameters bookResourceParameters) { if (bookResourceParameters == null) { throw new ArgumentNullException(nameof(bookResourceParameters)); } // Casting books into IQueryable to expand tree queries var books = _context.Books as IQueryable <Book>; // Getting new version of PagedList<Book> // After Pagination return(await PagedList <Book> .Create(books, bookResourceParameters.PageNumber, bookResourceParameters.PageSize)); }
public IEnumerable <Book> GetBooks(BookResourceParameters bookResourceParameters) { if (string.IsNullOrEmpty(bookResourceParameters.Genre)) { return(GetBooks()); } string sql = @"select b.au_id, b.book_id, b.type, b.price, b.title, b.pubdate from books b where b.type = @Genre"; var parameters = new DynamicParameters(); parameters.Add("@Genre", bookResourceParameters.Genre, DbType.String, ParameterDirection.Input, bookResourceParameters.Genre.Length); var res = _repository.QueryDatabase <BookDbEntity>(sql, parameters); return(_mapper.Map <IEnumerable <Book> >(res)); }
// Book Resource Parameters are Query Params public async Task <IActionResult> GetBooks( [FromQuery] BookResourceParameters bookResourceParameters) { // Getting the books from the repository var books = await _bookRepository.GetBooks(bookResourceParameters); // Creating books pagination info object var paginationParamters = new { currentPage = books.CurrentPage, pageSize = books.PageSize, totalItems = books.TotalItems, totalPages = books.TotalPages }; // Adding X-Pagination Header to Header Responses Response.Headers.Add("X-Pagination", JsonSerializer.Serialize(paginationParamters)); // Mapping Book to BookDto Implementing Outer Facing Contract var booksToReturn = _mapper.Map <IEnumerable <BookDto> >(books); // Returning Status Code 200 return(Ok(booksToReturn)); }
public ActionResult <IEnumerable <BookDto> > GetBooks([FromQuery] BookResourceParameters bookResourceParameters) { return(Ok(_bookService.GetBooks(bookResourceParameters))); }