--- source_files: - DTS Viewer/DTS.Viewer.Modules/DTS.Viewer.TestSummaryList/ViewModel/TestSummaryViewModel.cs - DTS Viewer/DTS.Viewer.Modules/DTS.Viewer.TestSummaryList/ViewModel/TestSummaryViewListModel.cs generated_at: "2026-04-17T15:56:32.359697+00:00" model: "zai-org/GLM-5-FP8" schema_version: 1 sha256: "170b78c49a4abb43" --- # Documentation: TestSummaryList ViewModels ## 1. Purpose This module provides two ViewModel implementations (`TestSummaryViewModel` and `TestSummaryViewListModel`) for managing and displaying test summary data within the DTS Viewer application. Both classes implement `ITestSummaryListViewModel` and serve as intermediaries between test summary data models and their associated views, handling user interactions, event aggregation for cross-component communication, data filtering, and sorting. The module exists to support the Prism-based MVVM architecture, coordinating test summary selection, folder/file data loading, and notification publishing to other application components. --- ## 2. Public Interface ### TestSummaryViewModel **Constructor:** ```csharp public TestSummaryViewModel(ITestSummaryListView view, IRegionManager regionManager, IEventAggregator eventAggregator, IUnityContainer unityContainer) ``` Initializes the ViewModel, sets the view's DataContext, creates interaction requests, and subscribes to `RaiseNotification` and `DataFolderChangedEvent` events. **Methods:** | Method | Signature | Description | |--------|-----------|-------------| | `Initialize` | `void Initialize()` | Empty override. | | `Initialize` | `void Initialize(object parameter)` | Casts parameter to `IBaseWindowModel` and assigns to `Parent`. | | `Activated` | `void Activated()` | Throws `NotImplementedException`. | | `Cleanup` | `void Cleanup()` | Throws `NotImplementedException`. | | `CleanupAsync` | `Task CleanupAsync()` | Throws `NotImplementedException`. | | `InitializeAsync` | `Task InitializeAsync()` | Throws `NotImplementedException`. | | `InitializeAsync` | `Task InitializeAsync(object parameter)` | Throws `NotImplementedException`. | | `PublishSelectedTestSummaryList` | `void PublishSelectedTestSummaryList()` | Publishes `TestSummaryChangeNotification` and `TestSelectedChangedEvent` events with current selection. | **Properties:** | Property | Type | Description | |----------|------|-------------| | `TestSummaryListView` | `ITestSummaryListView` | The associated view instance. | | `NotificationRequest` | `InteractionRequest` | Prism interaction request for notifications. | | `ConfirmationRequest` | `InteractionRequest` | Prism interaction request for confirmations. | | `ContextNavigationRegion` | `object` | Gets/sets content of `TestListRegion` on the view. | | `SelectedTestSummary` | `TestSummary` | Currently selected single test summary. | | `SelectedTestSummaryList` | `List` | List of selected test summaries. | | `TestSummaryList` | `ObservableCollection` | Collection of all test summaries. | | `HeaderInfo` | `string` | Returns `"TestSummaryRegion"`. | | `IsBusy` | `bool` | Busy indicator state. | | `IsDirty` | `bool` | Dirty state flag. | | `IsNavigationIncluded` | `bool` | Navigation inclusion flag. | **Events:** - `PropertyChanged` - Custom `PropertyChangedEventHandler` (hides base implementation with `new`). --- ### TestSummaryViewListModel **Constructor:** ```csharp public TestSummaryViewListModel(ITestSummaryListView view, IRegionManager regionManager, IEventAggregator eventAggregator, IUnityContainer unityContainer) ``` Initializes the ViewModel, sets the view's DataContext, creates interaction requests, and stores dependencies. **Methods:** | Method | Signature | Description | |--------|-----------|-------------| | `Initialize` | `void Initialize()` | Empty override. | | `Initialize` | `void Initialize(object parameter)` | Sets `Parent`, initializes `FilterView`, attaches collection changed handlers, and calls `Subscribe()`. | | `OnFilterChanged` | `void OnFilterChanged(FilterParameterArgs args)` | Filters `FilteredTestSummaryList` based on `SetupName`, `Id`, or `Description` containing the parameter string. | | `Activated` | `void Activated()` | Publishes empty `FilterParameterChangedEvent` to reset filter. | | `Cleanup` | `void Cleanup()` | Clears all collections, resets `SelectedTestSummary`, and publishes selection changes. | | `PublishSelectedTestSummaryList` | `void PublishSelectedTestSummaryList()` | Publishes `TestSummaryChangeNotification`, `TestSummaryCountNotification`, and `ResetZoomChangedEvent`. | | `RefreshDataFolder` | `void RefreshDataFolder()` | Publishes `DataFolderChangedEvent` via dispatcher. | | `SelectDataFolder` | `void SelectDataFolder()` | Opens `OpenFileDialog` for .dts files and publishes `DataFileSelectedEvent`. | | `SortTestSummaryList` | `void SortTestSummaryList()` | Sorts `FilteredTestSummaryList` based on `SelectedSortIndex`. | **Properties:** | Property | Type | Description | |----------|------|-------------| | `FilterView` | `IFilterView` | Resolved filter view instance. | | `View` | `ITestSummaryListView` | The associated view instance. | | `NotificationRequest` | `InteractionRequest` | Prism interaction request for notifications. | | `ConfirmationRequest` | `InteractionRequest` | Prism interaction request for confirmations. | | `ContextNavigationRegion` | `object` | Gets/sets DataContext of `TestListRegion` on the view. | | `IsFilterEnabled` | `bool` | Indicates if filtering is available (true when list has items). | | `SelectedTestSummary` | `TestSummary` | Currently selected single test summary. | | `SelectedTestSummaryList` | `List` | List of selected test summaries. | | `TestSummaryList` | `ObservableCollection` | Full collection; setter updates `IsFilterEnabled` and `FilteredTestSummaryList`. | | `FilteredTestSummaryList` | `ObservableCollection` | Filtered/sorted view of test summaries. | | `HeaderInfo` | `string` | Returns `"TestSummaryRegion"`. | | `IsBusy` | `bool` | Busy indicator state. | | `IsDirty` | `bool` | Dirty state flag. | | `IsNavigationIncluded` | `bool` | Navigation inclusion flag. | | `SelectedDataFolder` | `string` | Selected folder path; setter publishes `DataFolderChangedEvent`. | | `SelectedDataFile` | `string` | Selected file path; setter publishes `DataFolderChangedEvent`. | | `SortableAttributes` | `List` | Localized list of sortable attribute names. | | `SelectedSortIndex` | `int` | Index of selected sort; setter triggers `SortTestSummaryList()`. | **Commands:** | Command | Type | Description | |---------|------|-------------| | `Refresh