public async Task <IActionResult> ListAsync( [FromQuery] int top = 100, [FromQuery] int skip = 0) { var query = new ListWalletQuery { Top = top, Skip = skip }; var result = await _queryExecutor.ExecuteAsync <ListWalletQuery, PaginationCollection <WalletDocument> >(query); return(Ok(result)); }
public async Task <Result <PaginationCollection <WalletDocument> > > HandleAsync(ListWalletQuery query, CancellationToken cancellationToken = default) { Assert.IsNotNull(query, nameof(query)); cancellationToken.ThrowIfCancellationRequested(); var userId = _userContext.UserId; var wallets = await _readOnlyRepository.ListAsync(userId, top : query.Top, skip : query.Skip, cancellationToken); var totalCount = await _readOnlyRepository.CountAsync(p => p.UserId == userId, cancellationToken); var walletDocuments = wallets.Select(_mapper.Map).ToList(); var paginationCollection = new PaginationCollection <WalletDocument> { Items = walletDocuments, Count = totalCount }; return(Result.Ok(paginationCollection)); }