public GetBooksOutput GetBooks(GetAllBooksInput input) { if (input.Filter.IsNullOrEmpty()) { var books = _bookRepository.GetAllList().Skip(input.SkipCount).Take(input.MaxResultCount); return(new GetBooksOutput { Books = _objectMapper.Map <List <BookDto> >(books), TotalCount = _bookRepository.Count() }); } else { var books = _bookRepository.GetAllList( book => book.Title.Contains(input.Filter) || book.ISBN.Contains(input.Filter) || book.AuthorName.Contains(input.Filter)) .Skip(input.SkipCount).Take(input.MaxResultCount); //get count of filtered books for paging var countFiltered = _bookRepository.GetAllList( book => book.Title.Contains(input.Filter) || book.ISBN.Contains(input.Filter) || book.AuthorName.Contains(input.Filter)); return(new GetBooksOutput { Books = _objectMapper.Map <List <BookDto> >(books), TotalCount = countFiltered.Count() }); } }
public GetBooksOutput GetMyBooks(GetAllBooksInput input) { // show books only for current user var books = _bookRepository.GetAllList(book => book.UserId == input.UserId).Skip(input.SkipCount).Take(input.MaxResultCount); return(new GetBooksOutput { Books = _objectMapper.Map <List <BookDto> >(books), TotalCount = _bookRepository.Count(book => book.UserId == input.UserId) }); }
public async Task <ListResultDto <BooksListDto> > GetAll(GetAllBooksInput input) { var books = await _bookRepository .GetAll() .Include(b => b.DueDate) .WhereIf(input.State.HasValue, b => b.State == input.State) .OrderByDescending(b => b.CreationTime) .ToListAsync(); return(new ListResultDto <BooksListDto>( ObjectMapper.Map <List <BooksListDto> >(books) )); }