public async Task <PagedResult <ResultPreviewDto> > GetPagedAsync(QueryRequest queryRequest, CancellationToken cancellationToken) { if (queryRequest == null) { throw new ArgumentNullException(nameof(queryRequest)); } var expressionBuilder = new QueryExpressionBuilder(ResultProjectionExpressions); var result = await _resultsRepository.GetPagedPreviewsAsync( queryRequest.PageRequest.Next, queryRequest.PageRequest.Count, queryRequest.Descending, expressionBuilder.GetOrderBy <ResultProjection>(queryRequest), expressionBuilder.Build <ResultProjection>(queryRequest.Filters), queryRequest.PageRequest.TotalCount == 0, cancellationToken); queryRequest.PageRequest.TotalCount = result.TotalCount; return(new PagedResult <ResultPreviewDto>(result.Items.Select(m => m.ToDto()).ToList(), queryRequest.PageRequest)); }