コード例 #1
0
        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()
                });
            }
        }
コード例 #2
0
        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)
            });
        }
コード例 #3
0
        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)
                       ));
        }