init
This commit is contained in:
76
docs/ai/Common/DTS.Common/Interface/Pagination.md
Normal file
76
docs/ai/Common/DTS.Common/Interface/Pagination.md
Normal file
@@ -0,0 +1,76 @@
|
||||
---
|
||||
source_files:
|
||||
- Common/DTS.Common/Interface/Pagination/IPaginationView.cs
|
||||
- Common/DTS.Common/Interface/Pagination/IPaginationViewModel.cs
|
||||
- Common/DTS.Common/Interface/Pagination/IFilterableListView.cs
|
||||
generated_at: "2026-04-17T16:35:33.191659+00:00"
|
||||
model: "zai-org/GLM-5-FP8"
|
||||
schema_version: 1
|
||||
sha256: "33df2b5a84b97a39"
|
||||
---
|
||||
|
||||
# Documentation: Pagination Interfaces
|
||||
|
||||
## 1. Purpose
|
||||
|
||||
This module defines a set of interfaces for supporting pagination and filtering functionality within a view-based architecture (likely MVVM). It provides marker interfaces for pagination-capable views and view models, as well as a contract for list views that support dynamic filtering. These interfaces enable the system to identify and interact with UI components that handle paginated or filterable data without coupling to concrete implementations.
|
||||
|
||||
---
|
||||
|
||||
## 2. Public Interface
|
||||
|
||||
### `IPaginationView`
|
||||
**Namespace:** `DTS.Common.Interface`
|
||||
**Inheritance:** `IBaseView`
|
||||
|
||||
A marker interface with no members. Types implementing this interface indicate they are views capable of displaying paginated content.
|
||||
|
||||
---
|
||||
|
||||
### `IPaginationViewModel`
|
||||
**Namespace:** `DTS.Common.Interface`
|
||||
**Inheritance:** `IBaseViewModel`
|
||||
|
||||
A marker interface with no members. Types implementing this interface indicate they are view models that provide pagination logic or state.
|
||||
|
||||
---
|
||||
|
||||
### `IFilterableListView`
|
||||
**Namespace:** `DTS.Common.Interface.Pagination`
|
||||
|
||||
Defines a contract for views that support filterable list displays.
|
||||
|
||||
| Member | Signature | Description |
|
||||
|--------|-----------|-------------|
|
||||
| `Filter` | `void Filter(object tag, string term)` | Applies a filter identified by `tag` with the search criteria `term`. |
|
||||
| `ClearAllFilters` | `void ClearAllFilters()` | Removes all active filters from the list view. |
|
||||
| `ListViewId` | `string ListViewId { get; }` | Read-only property returning a unique identifier for this list view instance. |
|
||||
|
||||
---
|
||||
|
||||
## 3. Invariants
|
||||
|
||||
- **`IFilterableListView.ListViewId`** must return a valid string value. Whether it must be non-null/non-empty is not specified in the source.
|
||||
- **`Filter(object tag, string term)`** accepts any `object` as a tag and any `string` as a term; no constraints on these parameters are defined at the interface level.
|
||||
- The relationship between `IPaginationView`/`IPaginationViewModel` and `IFilterableListView` is not defined in the source—whether they are intended to be used together is unclear.
|
||||
|
||||
---
|
||||
|
||||
## 4. Dependencies
|
||||
|
||||
### This module depends on:
|
||||
- `DTS.Common.Base.IBaseView` — base interface for `IPaginationView`
|
||||
- `DTS.Common.Base.IBaseViewModel` — base interface for `IPaginationViewModel`
|
||||
|
||||
### What depends on this module:
|
||||
- Cannot be determined from the provided source files alone.
|
||||
|
||||
---
|
||||
|
||||
## 5. Gotchas
|
||||
|
||||
1. **Namespace inconsistency:** `IPaginationView` and `IPaginationViewModel` are located in the `Pagination` folder but declare namespace `DTS.Common.Interface`, while `IFilterableListView` uses `DTS.Common.Interface.Pagination`. This may cause confusion when locating types or resolving imports.
|
||||
|
||||
2. **Marker interfaces:** `IPaginationView` and `IPaginationViewModel` define no members. Their utility depends entirely on how `IBaseView` and `IBaseViewModel` are defined (not provided), and how consuming code performs type checking or registration.
|
||||
|
||||
3. **`Filter` method semantics:** The purpose of the `tag` parameter in `
|
||||
Reference in New Issue
Block a user