This document demonstrates the complete Get Paged List flow using the GetOrders feature from the EBusiness application. The flow starts with a GET request to the controller and uses Query projects instead of Handlers in the DomainHandler section for data retrieval.
Complete Flow Architecture
GET Request → Controller → Service → Query Handler → Database → Response
Query Building: Flexible query construction with filtering
Performance: Optimized for data retrieval
No Side Effects: Read-only operations
Pagination Features
PageNumber: Current page number (1-based)
PageSize: Number of items per page
TotalCount: Total number of items across all pages
TotalPages: Total number of pages
HasNextPage: Whether there are more pages
HasPreviousPage: Whether there are previous pages
Flow Summary
Synchronous Flow (Data Retrieval)
GET Request → Controller receives request with query parameters
Service Processing → Business orchestration and query resolution
Query Handler → Database query building and execution
AutoMapper → Entity-to-DTO transformation
Pagination → Apply pagination logic
Response → HTTP 200 OK with paged results
No Asynchronous Flow
No Events: Query operations don't publish events
No Subscribers: No side effects or event processing
Immediate Response: Data is returned immediately
Query Building Patterns
Basic Query Building
Advanced Query Building
Key Benefits
Performance: Optimized for data retrieval with pagination
Flexibility: Easy to add filtering and sorting
Type Safety: Strongly typed DTOs and parameters
AutoMapper: Automatic entity-to-DTO mapping
Pagination: Built-in pagination support
No Side Effects: Read-only operations
Testable: Each component can be tested independently
Maintainable: Clear separation of concerns
This GetOrders example demonstrates how FlexBase enables clean, maintainable, and scalable query operations with built-in pagination, filtering, and data transformation capabilities! 🚀