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));
        }
Exemplo n.º 2
0
 public virtual async Task <PaginatedList <PageShoplistCommandResult> > GetPageAsync(PageShoplistCommand command)
 {
     return(await _repository.GetPageAsync(command));
 }