public async Task <Result <PaginationCollection <BucketDocument> > > HandleAsync(ListBucketQuery query, CancellationToken cancellationToken = default) { Assert.IsNotNull(query, nameof(query)); cancellationToken.ThrowIfCancellationRequested(); var userId = _userContext.UserId; var totalCount = await _readOnlyRepository.CountAsync(p => p.UserId == userId, cancellationToken); var buckets = await _readOnlyRepository.ListAsync(p => p.UserId == userId, query.Top, query.Skip, cancellationToken); var documents = buckets.Select(_mapperDefinition.Map).ToList(); var paginationCollection = new PaginationCollection <BucketDocument>() { Items = documents, Count = totalCount }; return(Result.Ok(paginationCollection)); }
public static Task <long> CountAsync <T>(this IReadOnlyRepository <T> repository, CommandOptionsDescriptor <T> options = null) where T : class, new() { return(repository.CountAsync(options.Configure())); }