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));
        }
Exemplo n.º 2
0
 public static Task <long> CountAsync <T>(this IReadOnlyRepository <T> repository, CommandOptionsDescriptor <T> options = null) where T : class, new()
 {
     return(repository.CountAsync(options.Configure()));
 }