101 lines
4.4 KiB
Markdown
101 lines
4.4 KiB
Markdown
|
|
---
|
||
|
|
source_files:
|
||
|
|
- Common/DTS.CommonCore/Interface/LabDetails/ILabDetailsView.cs
|
||
|
|
- Common/DTS.CommonCore/Interface/LabDetails/ILabDetailsViewModel.cs
|
||
|
|
- Common/DTS.CommonCore/Interface/LabDetails/ILabDetailsMenuView.cs
|
||
|
|
- Common/DTS.CommonCore/Interface/LabDetails/ILabDetailsMenuViewModel.cs
|
||
|
|
generated_at: "2026-04-16T12:09:23.345708+00:00"
|
||
|
|
model: "zai-org/GLM-5-FP8"
|
||
|
|
schema_version: 1
|
||
|
|
sha256: "9b8d7157407e874e"
|
||
|
|
---
|
||
|
|
|
||
|
|
# Documentation: ILabDetails Interfaces
|
||
|
|
|
||
|
|
## 1. Purpose
|
||
|
|
|
||
|
|
This module defines four marker interfaces for the "Lab Details" feature within the DTS application, following the Model-View-ViewModel (MVVM) architectural pattern. These interfaces establish contracts for views and view models—both for the main lab details display and for an associated ribbon menu—enabling decoupled UI components that can be referenced abstractly throughout the codebase. The interfaces themselves define no members, serving purely as type identifiers that inherit from base view/viewmodel contracts.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 2. Public Interface
|
||
|
|
|
||
|
|
### ILabDetailsView
|
||
|
|
**Signature:**
|
||
|
|
```csharp
|
||
|
|
namespace DTS.Common.Interface
|
||
|
|
{
|
||
|
|
public interface ILabDetailsView : IBaseView { }
|
||
|
|
}
|
||
|
|
```
|
||
|
|
**Behavior:** A marker interface for lab details views. Inherits from `IBaseView`. Defines no additional members beyond its base interface contract.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### ILabDetailsViewModel
|
||
|
|
**Signature:**
|
||
|
|
```csharp
|
||
|
|
namespace DTS.Common.Interface
|
||
|
|
{
|
||
|
|
public interface ILabDetailsViewModel : IBaseViewModel { }
|
||
|
|
}
|
||
|
|
```
|
||
|
|
**Behavior:** A marker interface for lab details view models. Inherits from `IBaseViewModel`. Defines no additional members beyond its base interface contract.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### ILabDetailsMenuView
|
||
|
|
**Signature:**
|
||
|
|
```csharp
|
||
|
|
namespace DTS.Common.Interface
|
||
|
|
{
|
||
|
|
public interface ILabDetailsMenuView : IRibbonView { }
|
||
|
|
}
|
||
|
|
```
|
||
|
|
**Behavior:** A marker interface for lab details ribbon menu views. Inherits from `IRibbonView`. Defines no additional members beyond its base interface contract.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### ILabDetailsMenuViewModel
|
||
|
|
**Signature:**
|
||
|
|
```csharp
|
||
|
|
namespace DTS.Common.Interface
|
||
|
|
{
|
||
|
|
public interface ILabDetailsMenuViewModel : IRibbonViewModel { }
|
||
|
|
}
|
||
|
|
```
|
||
|
|
**Behavior:** A marker interface for lab details ribbon menu view models. Inherits from `IRibbonViewModel`. Defines no additional members beyond its base interface contract.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 3. Invariants
|
||
|
|
|
||
|
|
- All four interfaces are marker interfaces with no members; they rely entirely on their parent interfaces for any contractual requirements.
|
||
|
|
- `ILabDetailsView` and `ILabDetailsViewModel` form a paired View/ViewModel set.
|
||
|
|
- `ILabDetailsMenuView` and `ILabDetailsMenuViewModel` form a paired View/ViewModel set for ribbon-specific functionality.
|
||
|
|
- All interfaces reside in the `DTS.Common.Interface` namespace.
|
||
|
|
- The View interfaces (`ILabDetailsView`, `ILabDetailsMenuView`) inherit from view-specific base interfaces (`IBaseView`, `IRibbonView` respectively).
|
||
|
|
- The ViewModel interfaces (`ILabDetailsViewModel`, `ILabDetailsMenuViewModel`) inherit from viewmodel-specific base interfaces (`IBaseViewModel`, `IRibbonViewModel` respectively).
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 4. Dependencies
|
||
|
|
|
||
|
|
### This module depends on:
|
||
|
|
| Dependency | Namespace | Source File |
|
||
|
|
|------------|-----------|-------------|
|
||
|
|
| `IBaseView` | `DTS.Common.Base` | ILabDetailsView.cs |
|
||
|
|
| `IBaseViewModel` | `DTS.Common.Base` | ILabDetailsViewModel.cs |
|
||
|
|
| `IRibbonView` | `DTS.Common.RibbonControl` | ILabDetailsMenuView.cs |
|
||
|
|
| `IRibbonViewModel` | `DTS.Common.RibbonControl` | ILabDetailsMenuViewModel.cs |
|
||
|
|
|
||
|
|
### What depends on this module:
|
||
|
|
**Cannot be determined from source alone.** The source files contain no references to other modules importing or implementing these interfaces.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 5. Gotchas
|
||
|
|
|
||
|
|
- **Empty interfaces:** All four interfaces define no members. Any behavior or properties must come from the base interfaces (`IBaseView`, `IBaseViewModel`, `IRibbonView`, `IRibbonViewModel`). Developers implementing these interfaces should consult those base interfaces for required members.
|
||
|
|
- **Purpose unclear from source:** The specific domain purpose of "Lab Details" (e.g., what data it represents, what operations it supports) cannot be determined from these interface definitions alone.
|
||
|
|
- **Ribbon vs. Base distinction:** The menu interfaces inherit from `IRibbonView`/`IRibbonViewModel` rather than `IBaseView`/`IBaseViewModel`, suggesting a different behavioral contract for ribbon-based UI components. The relationship between `IRibbonView` and `IBaseView` (if any) is not visible in these files.
|