Files
2026-04-17 14:55:32 -04:00

3.8 KiB

source_files, generated_at, model, schema_version, sha256
source_files generated_at model schema_version sha256
Common/DTS.CommonCore/Interface/Pagination/IPaginationView.cs
Common/DTS.CommonCore/Interface/Pagination/IPaginationViewModel.cs
Common/DTS.CommonCore/Interface/Pagination/IFilterableListView.cs
2026-04-16T12:09:07.697429+00:00 zai-org/GLM-5-FP8 1 17272f9179ee1d83

Documentation: Pagination Interfaces

1. Purpose

This module defines core interfaces for pagination and filtering functionality within a view/view-model architecture. It provides marker interfaces for pagination-capable views and view models (IPaginationView, IPaginationViewModel) that integrate with a base view system, as well as a behavioral interface (IFilterableListView) for list views that support dynamic filtering. These interfaces establish contracts for UI components that need to handle paginated data and user-driven filter operations.


2. Public Interface

IPaginationView

Namespace: DTS.Common.Interface
Inheritance: IBaseView

A marker interface for views that support pagination. Defines no members of its own; its contract is purely type identity, indicating that a view participates in pagination workflows.


IPaginationViewModel

Namespace: DTS.Common.Interface
Inheritance: IBaseViewModel

A marker interface for view models that support pagination. Like IPaginationView, it defines no members and serves as a type marker for pagination-capable view models within the system.


IFilterableListView

Namespace: DTS.Common.Interface.Pagination

An interface for views that support filterable list functionality.

Member Signature Description
Filter void Filter(object tag, string term) Applies a filter to the list view using the provided tag and search term.
ClearAllFilters void ClearAllFilters() Removes all active filters from the list view.
ListViewId string ListViewId { get; } Read-only property returning the identifier for this list view.

3. Invariants

  • IPaginationView and IPaginationViewModel must be assignable to IBaseView and IBaseViewModel respectively (enforced by inheritance).
  • IFilterableListView.ListViewId must return a valid string identifier; whether null or empty strings are permitted is not specified in the source.
  • The Filter method's tag parameter is of type object, implying any reference or value type may be passed; the semantic contract for this parameter is not defined in the source.

4. Dependencies

This module depends on:

  • DTS.Common.Base — provides IBaseView and IBaseViewModel base interfaces that IPaginationView and IPaginationViewModel extend.

What depends on this module:

  • Cannot be determined from the provided source files alone. These interfaces are likely consumed by concrete view/view model implementations and any framework code that handles pagination or filtering logic.

5. Gotchas

  1. Inconsistent namespace structure: IPaginationView and IPaginationViewModel reside in DTS.Common.Interface, while IFilterableListView resides in DTS.Common.Interface.Pagination. This may cause confusion when importing or organizing related types.

  2. Marker interfaces with no members: IPaginationView and IPaginationViewModel define no members, suggesting they may be used for type checking, dependency injection registration, or convention-based wiring. Their actual utility depends on framework-level code not shown here.

  3. Ambiguous tag parameter: The Filter(object tag, string term) method accepts an untyped object parameter. Without additional documentation or implementation code, the intended use of this parameter (e.g., column identifier, filter type enum, or other metadata) is unclear.