--- source_files: - Common/DTS.CommonCore/Interface/Pagination/IPaginationView.cs - Common/DTS.CommonCore/Interface/Pagination/IPaginationViewModel.cs - Common/DTS.CommonCore/Interface/Pagination/IFilterableListView.cs generated_at: "2026-04-17T16:22:31.599472+00:00" model: "zai-org/GLM-5-FP8" schema_version: 1 sha256: "2cac2f28b0d18155" --- # Pagination ### Purpose This module defines interfaces for pagination and filtering functionality within the DTS system. It provides marker interfaces for pagination views and view models, as well as a contract for filterable list views. These interfaces enable a consistent pattern for implementing paginated, searchable UI components across the application. ### Public Interface **IPaginationView** (extends `IBaseView`) - Marker interface with no members. Identifies views that support pagination. **IPaginationViewModel** (extends `IBaseViewModel`) - Marker interface with no members. Identifies view models that support pagination. **IFilterableListView** - `void Filter(object tag, string term)` - Applies a filter to the list view using the provided tag and search term. - `void ClearAllFilters()` - Removes all active filters from the list view. - `string ListViewId { get; }` - Returns the identifier for this list view instance. ### Invariants - `IFilterableListView.ListViewId` must return a consistent identifier for the lifetime of the view instance. - Both `IPaginationView` and `IPaginationViewModel` must be compatible with their respective base types (`IBaseView` and `IBaseViewModel`) from `DTS.Common.Base`. ### Dependencies - **Depends on**: `DTS.Common.Base` (for `IBaseView` and `IBaseViewModel`) - **Depended on by**: Unknown from source alone (likely pagination UI components and list views) ### Gotchas - `IPaginationView` and `IPaginationViewModel` are marker interfaces with no members, suggesting they may be used for type checking or dependency injection registration rather than defining behavioral contracts. - The `Filter` method accepts `object tag` as a parameter; the expected type and usage of this tag is not specified in the interface. ---