init
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
---
|
||||
source_files:
|
||||
- Common/DTS.CommonCore/Interface/DTS.Viewer/TestSummary/ITestSummaryListView.cs
|
||||
- Common/DTS.CommonCore/Interface/DTS.Viewer/TestSummary/ITestSummaryListViewModel.cs
|
||||
- Common/DTS.CommonCore/Interface/DTS.Viewer/TestSummary/ITestSummary.cs
|
||||
generated_at: "2026-04-16T12:23:26.707020+00:00"
|
||||
model: "zai-org/GLM-5-FP8"
|
||||
schema_version: 1
|
||||
sha256: "b60d1a2f75a9d685"
|
||||
---
|
||||
|
||||
# Documentation: Test Summary List View Interfaces
|
||||
|
||||
## 1. Purpose
|
||||
|
||||
This module defines the core interfaces for a Test Summary List feature within an MVVM (Model-View-ViewModel) architecture. It provides contracts for displaying collections of test summaries, managing user selections, and representing individual test summary data including channels, graphs, and metadata. The module serves as the abstraction layer between the view and view model for test summary presentation.
|
||||
|
||||
---
|
||||
|
||||
## 2. Public Interface
|
||||
|
||||
### `ITestSummaryListView`
|
||||
**Namespace:** `DTS.Common.Interface`
|
||||
**Extends:** `IBaseView`
|
||||
|
||||
A marker interface representing the view component for the test summary list. No members are defined beyond the inherited `IBaseView`.
|
||||
|
||||
---
|
||||
|
||||
### `ITestSummaryListViewModel`
|
||||
**Namespace:** `DTS.Common.Interface`
|
||||
**Extends:** `IBaseViewModel`
|
||||
|
||||
| Member | Type | Description |
|
||||
|--------|------|-------------|
|
||||
| `View` | `ITestSummaryListView` (read-only) | Gets the Shell View associated with this view model. |
|
||||
| `TestSummaryList` | `ObservableCollection<ITestSummary>` | Observable collection of test summaries bound to the view. Supports get/set. |
|
||||
| `SelectedTestSummaryList` | `List<ITestSummary>` | List of currently selected test summaries. Supports get/set. |
|
||||
| `PublishSelectedTestSummaryList()` | `void` | Publishes the selected test summary list (destination/consumers not specified in source). |
|
||||
| `TestSummaryList_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)` | `void` | Event handler for collection change notifications on `TestSummaryList`. |
|
||||
|
||||
---
|
||||
|
||||
### `ITestSummary`
|
||||
**Namespace:** `DTS.Common.Interface.TestDefinition`
|
||||
**Extends:** `IBaseClass`
|
||||
|
||||
| Property | Type | Access |
|
||||
|----------|------|--------|
|
||||
| `Id` | `string` | get/set |
|
||||
| `SetupName` | `string` | get/set |
|
||||
| `Description` | `string` | get/set |
|
||||
| `ChannelCount` | `int` | get/set |
|
||||
| `FileDate` | `DateTime` | get/set |
|
||||
| `TimeStamp` | `DateTime` | get/set |
|
||||
| `DataType` | `string` | get/set |
|
||||
| `IsSelected` | `bool` | get/set |
|
||||
| `Graphs` | `List<ITestGraphs>` | get/set |
|
||||
| `Channels` | `List<ITestChannel>` | get/set |
|
||||
| `CalculatedChannels` | `List<ITestChannel>` | get/set |
|
||||
| `Parent` | `IBaseViewModel` | get/set |
|
||||
| `TestMetadata` | `ITestMetadata` | get/set |
|
||||
| `CalibrationBehavior` | `CalibrationBehaviors` | get/set |
|
||||
|
||||
---
|
||||
|
||||
## 3. Invariants
|
||||
|
||||
- `ITestSummaryListView` must always be assignable to `IBaseView`.
|
||||
- `ITestSummaryListViewModel` must always be assignable to `IBaseViewModel`.
|
||||
- `ITestSummary` must always be assignable to `IBaseClass`.
|
||||
- `TestSummaryList_CollectionChanged` is designed to handle `NotifyCollectionChangedEventArgs`, implying it expects to be wired to an `ObservableCollection<T>.CollectionChanged` event.
|
||||
- The `Parent` property on `ITestSummary` suggests a hierarchical relationship where a test summary has a reference back to its containing view model.
|
||||
|
||||
---
|
||||
|
||||
## 4. Dependencies
|
||||
|
||||
### This module depends on:
|
||||
- **`DTS.Common.Base`** — Provides `IBaseView`, `IBaseViewModel`, and `IBaseClass` base interfaces.
|
||||
- **`DTS.Common.Enums.Sensors`** — Provides the `CalibrationBehaviors` enum used in `ITestSummary`.
|
||||
- **`System.Collections.Generic`** — For `List<T>`.
|
||||
- **`System.Collections.ObjectModel`** — For `ObservableCollection<T>`.
|
||||
- **`System.Collections.Specialized`** — For `NotifyCollectionChangedEventArgs`.
|
||||
- **`System`** — For `DateTime`.
|
||||
|
||||
### External types referenced but not defined in this module:
|
||||
- `ITestGraphs` — Referenced in `ITestSummary.Graphs`; definition not provided in source.
|
||||
- `ITestChannel` — Referenced in `ITestSummary.Channels` and `CalculatedChannels`; definition not provided in source.
|
||||
- `ITestMetadata` — Referenced in `ITestSummary.TestMetadata`; definition not provided in source.
|
||||
|
||||
---
|
||||
|
||||
## 5. Gotchas
|
||||
|
||||
1. **Namespace/Directory Mismatch:** All three files contain `// ReSharper disable CheckNamespace` directives. The physical file path (`DTS.Viewer/TestSummary/`) does not match the declared namespace (`DTS.Common.Interface` or `DTS.Common.Interface.TestDefinition`). This suggests either a deliberate namespace flattening strategy or a historical refactoring that left files in their original locations.
|
||||
|
||||
2. **`TestSummaryList_CollectionChanged` Naming Convention:** The method name follows an event handler naming pattern but is defined as a regular interface method rather than being wired via an event subscription. The caller is responsible for connecting this handler to the `CollectionChanged` event of `TestSummaryList`.
|
||||
|
||||
3. **Unknown Publish Behavior:** The `PublishSelectedTestSummaryList()` method's implementation details (event aggregator, message bus, direct callback, etc.) are not specified in these interfaces. Consumers should consult the implementing class for the actual publish mechanism.
|
||||
|
||||
4. **Nullable Collections Not Specified:** The interfaces do not indicate whether `Graphs`, `Channels`, `CalculatedChannels`, or `TestMetadata` can be null. Implementers should document their null-handling strategy.
|
||||
Reference in New Issue
Block a user