public virtual async Task <PaginatedList <PageAmountTypeCommandResult> > GetPageAsync(PageAmountTypeCommand command) { return(await _repository.GetPageAsync(command)); }
public async Task <PaginatedList <PageAmountTypeCommandResult> > GetPageAsync(PageAmountTypeCommand command) { var source = _context.AmountType.AsNoTracking().AsExpandable(); var outer = PredicateBuilder.New <AmountTypeInfo>(true); if (!string.IsNullOrEmpty(command.TextToSearch)) { var inner = PredicateBuilder.New <AmountTypeInfo>(); inner = inner.Start(AmountTypeSpecs.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(AmountTypeSpecs.AsPageAmountTypeCommandResult) .ToListAsync(); return(new PaginatedList <PageAmountTypeCommandResult>(items, count, command.PageNumber, command.PageSize)); }