public PagedResponse <PublisherDto> Execute(PublisherSearch search)
        {
            var query = _context.Publishers.AsQueryable();

            if (!string.IsNullOrEmpty(search.Name) || !string.IsNullOrWhiteSpace(search.Name))
            {
                query = query.Where(x => x.Name.ToLower().Contains(search.Name.ToLower()));
            }
            var skipCount = search.PerPage * (search.Page - 1);

            var response = new PagedResponse <PublisherDto>
            {
                TotalCount   = query.Count(),
                CurrentPage  = search.Page,
                ItemsPerPage = search.PerPage,
                Items        = query.Skip(skipCount)
                               .Take(search.PerPage)
                               .Select(x => new PublisherDto
                {
                    Id    = x.Id,
                    Name  = x.Name,
                    City  = x.City,
                    State = x.State
                }).ToList()
            };

            return(response);
        }
        public IActionResult Get(
            [FromQuery] PublisherSearch search,
            [FromServices] IGetPublishersQuery query)
        {
            var result = _executor.ExecuteQuery(query, search);

            return(Ok(result));
        }
        public PagedResponse <PublisherDto> Execute(PublisherSearch search)
        {
            var query = _context.Publishers.AsQueryable().DefaultFilter(search);

            if (!string.IsNullOrEmpty(search.Name) || !string.IsNullOrWhiteSpace(search.Name))
            {
                query = query.Where(x => x.Name.ToLower().Contains(search.Name.ToLower()));
            }

            return(query.Paged <PublisherDto, Domain.Publisher>(search, _mapper));
        }
示例#4
0
        public IQueryable <Book> filterbooks(IQueryable <Book> books, string searchstring, string author, string publisher)
        {
            var titlesearch = new TitleSearch();

            books = titlesearch.Result(books, searchstring);
            var authorsearch = new AuthorSearch();

            books = authorsearch.Result(books, author);
            var publishersearch = new PublisherSearch();

            books = publishersearch.Result(books, publisher);
            return(books);
        }
 public IActionResult Get([FromServices] IGetPublishers query, [FromQuery] PublisherSearch search)
 {
     return(Ok(_executor.ExecuteQuery(query, search)));
 }