public IActionResult GetBooksForUser(string userId, [FromQuery] UserBooksResourceParameters parameters) { var books = _bookService.GetBooksForUserAsync(userId, parameters); var booksDto = MapBookToBookDto(books); AddCoversToBookDtos(books, booksDto); var pagedList = new PagedList <BookDto>(booksDto.AsQueryable(), parameters.PageNumber, parameters.PageSize); return(Ok(pagedList)); }
public IQueryable <Book> GetBooksForUserAsync(string userId, UserBooksResourceParameters parameters) { var userBooks = _context.Books .Include(b => b.Cover) .Include(b => b.BookTags) .ThenInclude(bt => bt.Tag) .Where(b => b.UserId == userId) .FilterBooks(parameters) .FilterBooksByTags(parameters.Tags) .ApplySort(parameters.OrderBy, _propertyMappingService.GetPropertyMapping <BookDto, Book>()); return(userBooks); }