42 lines
2.1 KiB
Markdown
42 lines
2.1 KiB
Markdown
|
|
---
|
||
|
|
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.
|
||
|
|
|
||
|
|
---
|