Files

64 lines
3.2 KiB
Markdown
Raw Permalink Normal View History

2026-04-17 14:55:32 -04:00
---
source_files:
- Common/DTS.Common/Interface/LabDetails/ILabDetailsView.cs
- Common/DTS.Common/Interface/LabDetails/ILabDetailsViewModel.cs
- Common/DTS.Common/Interface/LabDetails/ILabDetailsMenuView.cs
- Common/DTS.Common/Interface/LabDetails/ILabDetailsMenuViewModel.cs
generated_at: "2026-04-17T16:34:44.878640+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "c9488231a3aee52d"
---
# Documentation: LabDetails Interfaces
## 1. Purpose
This module defines four marker interfaces for the LabDetails feature within an MVVM (Model-View-ViewModel) architecture. The interfaces establish type contracts for two distinct UI components: a main LabDetails view with its corresponding view model, and a LabDetails menu view integrated with a ribbon control system. These interfaces enable dependency injection, testability, and loose coupling between UI components and their consumers.
## 2. Public Interface
### ILabDetailsView
**Signature:** `public interface ILabDetailsView : IBaseView { }`
A marker interface extending `IBaseView`. Represents the main view contract for LabDetails functionality. No members are defined beyond those inherited from `IBaseView`.
---
### ILabDetailsViewModel
**Signature:** `public interface ILabDetailsViewModel : IBaseViewModel { }`
A marker interface extending `IBaseViewModel`. Represents the view model contract paired with `ILabDetailsView`. No members are defined beyond those inherited from `IBaseViewModel`.
---
### ILabDetailsMenuView
**Signature:** `public interface ILabDetailsMenuView : IRibbonView { }`
A marker interface extending `IRibbonView`. Represents a menu view contract for LabDetails that integrates with a ribbon control system. No members are defined beyond those inherited from `IRibbonView`.
---
### ILabDetailsMenuViewModel
**Signature:** `public interface ILabDetailsMenuViewModel : IRibbonViewModel { }`
A marker interface extending `IRibbonViewModel`. Represents the view model contract paired with `ILabDetailsMenuView`. No members are defined beyond those inherited from `IRibbonViewModel`.
## 3. Invariants
- Each view interface (`ILabDetailsView`, `ILabDetailsMenuView`) must have a corresponding view model interface (`ILabDetailsViewModel`, `ILabDetailsMenuViewModel`) following the MVVM pairing pattern.
- All interfaces are marker interfaces with no additional members; any behavioral contracts are inherited from their respective base interfaces (`IBaseView`, `IBaseViewModel`, `IRibbonView`, `IRibbonViewModel`).
- The specific invariants enforced by `IBaseView`, `IBaseViewModel`, `IRibbonView`, and `IRibbonViewModel` are not visible in the provided source.
## 4. Dependencies
### This module depends on:
- `DTS.Common.Base` — provides `IBaseView` and `IBaseViewModel` base types
- `DTS.Common.RibbonControl` — provides `IRibbonView` and `IRibbonViewModel` base types
### What depends on this module:
- Not determinable from the provided source alone. Consumers would typically include concrete implementations of these interfaces and any modules that reference LabDetails views or view models through these contracts.
## 5. Gotchas
- **Marker interfaces:** All four interfaces define no members of their own. They serve purely