flowchart LR
A[Request] -->|page, pageSize| B[Query]
B --> C[Count Total]
B --> D[Fetch Page]
C --> E[Response]
D --> E
E -->|Data + Headers| F[Client]
publicasyncTask<PaginatedResponse<TransactionResponse>>Handle(GetPaginatedTransactionsQueryrequest,CancellationTokenct){varquery=context.Transactions.Where(t=>t.GroupId==request.GroupId).Where(t=>!t.IsDeleted);// Apply filtersif(request.CategoryId.HasValue)query=query.Where(t=>t.CategoryId==request.CategoryId);// Get total before paginationvartotalCount=awaitquery.CountAsync(ct);// Apply paginationvardata=awaitquery.OrderByDescending(t=>t.Date).Skip((request.PageNumber-1)*request.PageSize).Take(request.PageSize).Select(t=>t.ToResponse()).ToListAsync(ct);returnnewPaginatedResponse<TransactionResponse>{Data=data,PageNumber=request.PageNumber,PageSize=request.PageSize,TotalCount=totalCount};}