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

5.3 KiB

source_files, generated_at, model, schema_version, sha256
source_files generated_at model schema_version sha256
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
2026-04-16T12:23:26.707020+00:00 zai-org/GLM-5-FP8 1 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.