public async Task <PaginatedList <PageShoplistCommandResult> > GetPageAsync(PageShoplistCommand command) { var source = _context.Shoplist.AsNoTracking().AsExpandable(); var outer = PredicateBuilder.New <ShoplistInfo>(true); if (!string.IsNullOrEmpty(command.TextToSearch)) { var inner = PredicateBuilder.New <ShoplistInfo>(); inner = inner.Start(ShoplistSpecs.TextToSearch(command.TextToSearch)); outer = outer.And(inner); } var count = await source.Where(outer).CountAsync(); var items = await source.Where(outer) .Skip(command.SkipNumber) .Take(command.PageSize) .Select(ShoplistSpecs.AsPageShoplistCommandResult) .ToListAsync(); return(new PaginatedList <PageShoplistCommandResult>(items, count, command.PageNumber, command.PageSize)); }
public virtual async Task <PaginatedList <PageShoplistCommandResult> > GetPageAsync(PageShoplistCommand command) { return(await _repository.GetPageAsync(command)); }