Files
DP44/docs/ai/Common/DTS.CommonCore/Interface/Pagination.md

42 lines
2.1 KiB
Markdown
Raw Normal View History

2026-04-17 14:55:32 -04:00
---
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.
---