public async Task <IActionResult> ListAsync( [FromQuery] int skip = 0, [FromQuery] int top = 100) { var query = new ListBucketQuery { Skip = skip, Top = top }; var result = await _queryExecutor.ExecuteAsync <ListBucketQuery, PaginationCollection <BucketDocument> >(query); return(Ok(result)); }
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)); }