init
This commit is contained in:
64
docs/ai/Common/DTS.CommonCore/Classes/DTS.Viewer/Commands.md
Normal file
64
docs/ai/Common/DTS.CommonCore/Classes/DTS.Viewer/Commands.md
Normal file
@@ -0,0 +1,64 @@
|
||||
---
|
||||
source_files:
|
||||
- Common/DTS.CommonCore/Classes/DTS.Viewer/Commands/RelayCommand.cs
|
||||
generated_at: "2026-04-17T16:38:38.055405+00:00"
|
||||
model: "zai-org/GLM-5-FP8"
|
||||
schema_version: 1
|
||||
sha256: "9f35643384379d28"
|
||||
---
|
||||
|
||||
# Documentation: RelayCommand
|
||||
|
||||
## 1. Purpose
|
||||
|
||||
`RelayCommand` is an implementation of `System.Windows.Input.ICommand` that delegates execution logic to callbacks provided at construction time. It enables MVVM (Model-View-ViewModel) data binding in WPF applications by allowing view models to expose commands that can be bound to UI elements (buttons, menu items, etc.) without requiring the view model to implement full command classes for each action. This is a standard pattern for decoupling UI from business logic.
|
||||
|
||||
---
|
||||
|
||||
## 2. Public Interface
|
||||
|
||||
### Constructors
|
||||
|
||||
| Signature | Description |
|
||||
|-----------|-------------|
|
||||
| `RelayCommand(Action<object> execute)` | Creates a command that always reports as executable. Internally delegates to the two-parameter constructor with `canExecute` set to `null`. |
|
||||
| `RelayCommand(Action<object> execute, Predicate<object> canExecute)` | Creates a command with both execute and canExecute logic. Throws `ArgumentNullException` if `execute` is `null`. The `canExecute` parameter may be `null`, in which case `CanExecute` will always return `true`. |
|
||||
|
||||
### Methods
|
||||
|
||||
| Signature | Description |
|
||||
|-----------|-------------|
|
||||
| `bool CanExecute(object parameter)` | Returns the result of invoking the `_canExecute` predicate with the provided `parameter`. If `_canExecute` is `null`, returns `true`. |
|
||||
| `void Execute(object parameter)` | Invokes the `_execute` action delegate with the provided `parameter`. |
|
||||
|
||||
### Events
|
||||
|
||||
| Event | Description |
|
||||
|-------|-------------|
|
||||
| `EventHandler CanExecuteChanged` | Forwards subscriptions to `CommandManager.RequerySuggested`. Adding/removing handlers directly adds/removes them from the WPF `CommandManager`. |
|
||||
|
||||
---
|
||||
|
||||
## 3. Invariants
|
||||
|
||||
- **`_execute` is never null after construction.** The constructor enforces this by throwing `ArgumentNullException` if a null value is passed.
|
||||
- **`_canExecute` may be null.** When null, `CanExecute` must return `true` for all parameters.
|
||||
- **`CanExecuteChanged` is always routed through `CommandManager.RequerySuggested`.** There is no manual invocation mechanism for this event within the class itself.
|
||||
- **The command does not retain or manage the parameter.** The `parameter` argument flows through without validation or storage.
|
||||
|
||||
---
|
||||
|
||||
## 4. Dependencies
|
||||
|
||||
### This module depends on:
|
||||
- `System` — Provides `Action<T>`, `Predicate<T>`, `ArgumentNullException`, and `EventHandler`.
|
||||
- `System.Windows.Input` — Provides `ICommand` interface and `CommandManager` static class.
|
||||
|
||||
### What depends on this module:
|
||||
- **Not determinable from source alone.** As a utility class, it is expected to be consumed by ViewModels and other UI-related components throughout the codebase, but specific consumers are not visible in this file.
|
||||
|
||||
---
|
||||
|
||||
## 5. Gotchas
|
||||
|
||||
1. **No manual `RaiseCanExecuteChanged` method.** Unlike some `RelayCommand` implementations, this class provides no way to manually raise `CanExecuteChanged`. Consumers are entirely dependent on `CommandManager
|
||||
61
docs/ai/Common/DTS.CommonCore/Classes/DTS.Viewer/Reports.md
Normal file
61
docs/ai/Common/DTS.CommonCore/Classes/DTS.Viewer/Reports.md
Normal file
@@ -0,0 +1,61 @@
|
||||
---
|
||||
source_files:
|
||||
- Common/DTS.CommonCore/Classes/DTS.Viewer/Reports/ChannelGRMSSummary.cs
|
||||
generated_at: "2026-04-17T16:38:38.176911+00:00"
|
||||
model: "zai-org/GLM-5-FP8"
|
||||
schema_version: 1
|
||||
sha256: "022bbb862d4376ac"
|
||||
---
|
||||
|
||||
# Documentation: ChannelGRMSSummary
|
||||
|
||||
## 1. Purpose
|
||||
|
||||
`ChannelGRMSSummary` is a data model class representing a summary report entry for a single channel's GRMS (likely "G RMS" - Root Mean Square acceleration measured in G-forces) value. It implements `IChannelGRMSSummary` and supports property change notification via the `INotifyPropertyChanged` pattern, enabling data binding scenarios in viewer/reporting contexts.
|
||||
|
||||
## 2. Public Interface
|
||||
|
||||
### Class: `ChannelGRMSSummary`
|
||||
**Namespace:** `DTS.Common.Classes.Viewer.Reports`
|
||||
**Implements:** `IChannelGRMSSummary`
|
||||
|
||||
#### Properties
|
||||
|
||||
| Name | Type | Access | Description |
|
||||
|------|------|--------|-------------|
|
||||
| `ChannelName` | `string` | get/set | Name identifier for the channel being summarized. |
|
||||
| `SampleRate` | `int` | get/set | Sample rate value for the channel (units unspecified in source). |
|
||||
| `GRMS` | `double` | get/set | GRMS (G-force Root Mean Square) value for the channel. |
|
||||
|
||||
#### Events
|
||||
|
||||
| Name | Type | Description |
|
||||
|------|------|-------------|
|
||||
| `PropertyChanged` | `PropertyChangedEventHandler` | Standard property change notification event. |
|
||||
|
||||
#### Methods
|
||||
|
||||
| Signature | Description |
|
||||
|-----------|-------------|
|
||||
| `void OnPropertyChanged(string propertyName)` | Invokes the `PropertyChanged` event with the specified property name, if any handlers are attached. |
|
||||
|
||||
## 3. Invariants
|
||||
|
||||
- The class uses auto-implemented properties with no validation logic; `ChannelName` may be `null`, and `SampleRate`/`GRMS` will default to `0` if not explicitly set.
|
||||
- The `PropertyChanged` event will only fire when `OnPropertyChanged` is explicitly called; property setters do not automatically trigger notification.
|
||||
- The relationship between `SampleRate` and `GRMS` (e.g., whether GRMS is calculated from samples at that rate) is not enforced by this class.
|
||||
|
||||
## 4. Dependencies
|
||||
|
||||
### This module depends on:
|
||||
- `DTS.Common.Interface` — provides `IChannelGRMSSummary` interface
|
||||
- `System.ComponentModel` — provides `PropertyChangedEventHandler` and `PropertyChangedEventArgs`
|
||||
|
||||
### What depends on this module:
|
||||
- **Unknown from source alone.** Consumers of `IChannelGRMSSummary` or this concrete implementation are not visible in this file.
|
||||
|
||||
## 5. Gotchas
|
||||
|
||||
- **Manual notification required:** The property setters (`ChannelName`, `SampleRate`, `GRMS`) do not automatically call `OnPropertyChanged`. Callers must manually invoke `OnPropertyChanged` after setting properties if UI binding notification is required. This is a common source of bugs in MVVM scenarios.
|
||||
- **Interface inheritance unclear:** Whether `IChannelGRMSSummary` inherits from `INotifyPropertyChanged` cannot be determined from this source alone. If it does not, consumers expecting standard `INotifyPropertyChanged` behavior may need to cast or check for the interface explicitly.
|
||||
- **No constructor defined:** The class relies on the default parameterless constructor
|
||||
273
docs/ai/Common/DTS.CommonCore/Classes/DTS.Viewer/TestMetadata.md
Normal file
273
docs/ai/Common/DTS.CommonCore/Classes/DTS.Viewer/TestMetadata.md
Normal file
@@ -0,0 +1,273 @@
|
||||
---
|
||||
source_files:
|
||||
- Common/DTS.CommonCore/Classes/DTS.Viewer/TestMetadata/TestMetadata.cs
|
||||
- Common/DTS.CommonCore/Classes/DTS.Viewer/TestMetadata/TestGraphs.cs
|
||||
- Common/DTS.CommonCore/Classes/DTS.Viewer/TestMetadata/TestSetupMetadata.cs
|
||||
- Common/DTS.CommonCore/Classes/DTS.Viewer/TestMetadata/TestRunMetadata.cs
|
||||
- Common/DTS.CommonCore/Classes/DTS.Viewer/TestMetadata/TestSummary.cs
|
||||
- Common/DTS.CommonCore/Classes/DTS.Viewer/TestMetadata/TestModule.cs
|
||||
- Common/DTS.CommonCore/Classes/DTS.Viewer/TestMetadata/TestChannel.cs
|
||||
- Common/DTS.CommonCore/Classes/DTS.Viewer/TestMetadata/TestMetadataList.cs
|
||||
generated_at: "2026-04-17T15:34:59.192943+00:00"
|
||||
model: "zai-org/GLM-5-FP8"
|
||||
schema_version: 1
|
||||
sha256: "edb878a345b676b6"
|
||||
---
|
||||
|
||||
# Test Metadata Module Documentation
|
||||
|
||||
## 1. Purpose
|
||||
|
||||
This module provides the data model and parsing infrastructure for test metadata in the DTS (Data Test System) application. It defines POCO classes representing test runs, setups, modules, channels, and graphs, along with XML parsing logic to hydrate these objects from `.dts` files. The module serves as the bridge between persisted test data and the application's runtime representation, supporting both raw data channels and calculated channels with full calibration and statistical metadata.
|
||||
|
||||
---
|
||||
|
||||
## 2. Public Interface
|
||||
|
||||
### TestMetadata
|
||||
Implements `ITestMetadata`. Root container for test information.
|
||||
|
||||
| Property | Type | Description |
|
||||
|----------|------|-------------|
|
||||
| `TestRun` | `ITestRunMetadata` | Metadata about the test run execution |
|
||||
| `TestSetup` | `ITestSetupMetadata` | Metadata about the test setup configuration |
|
||||
|
||||
### TestGraphs
|
||||
Implements `ITestGraphs`. Represents a graph configuration within a test setup.
|
||||
|
||||
| Property | Type | Description |
|
||||
|----------|------|-------------|
|
||||
| `Name` | `string` | Graph name |
|
||||
| `HardwareChannelName` | `string` | Associated hardware channel name |
|
||||
| `ChannelIds` | `List<string>` | List of channel IDs belonging to this graph |
|
||||
| `Channels` | `List<ITestChannel>` | Resolved channel objects |
|
||||
|
||||
### TestSetupMetadata
|
||||
Implements `ITestSetupMetadata`. Contains test setup configuration.
|
||||
|
||||
| Property | Type | Description |
|
||||
|----------|------|-------------|
|
||||
| `SetupName` | `string` | Name of the test setup |
|
||||
| `TimeStamp` | `DateTime` | Timestamp of the setup |
|
||||
| `TestGraphs` | `List<ITestGraphs>` | Graph configurations |
|
||||
| `CalibrationBehavior` | `CalibrationBehaviors` | Calibration mode enum value |
|
||||
|
||||
### TestRunMetadata
|
||||
Implements `ITestRunMetadata`. Contains test run execution details. Implements `INotifyPropertyChanged`.
|
||||
|
||||
| Property | Type | Description |
|
||||
|----------|------|-------------|
|
||||
| `Name` | `string` | Test name (ID from DTS file) |
|
||||
| `Id` | `string` | File name without extension |
|
||||
| `Description` | `string` | Test description |
|
||||
| `InlineSerializedData` | `bool` | Whether data is inline serialized |
|
||||
| `TestGuid` | `string` | Unique test identifier |
|
||||
| `FaultFlags` | `int` | Fault flag bitmask |
|
||||
| `Software` | `string` | Software name |
|
||||
| `SoftwareVersion` | `string` | Software version |
|
||||
| `DataType` | `string` | Data type identifier |
|
||||
| `FileDate` | `DateTime` | File creation date |
|
||||
| `FilePath` | `string` | Path to the test file |
|
||||
| `Modules` | `List<ITestModule>` | List of test modules |
|
||||
| `Channels` | `List<ITestChannel>` | All channels across modules |
|
||||
| `CalculatedChannels` | `List<ITestChannel>` | Calculated/virtual channels |
|
||||
| `IsSelected` | `bool` | Selection state |
|
||||
|
||||
**Events:**
|
||||
- `event PropertyChangedEventHandler PropertyChanged`
|
||||
|
||||
**Methods:**
|
||||
- `void OnPropertyChanged([CallerMemberName] string propertyName = null)` - Protected virtual
|
||||
|
||||
### TestSummary
|
||||
Implements `ITestSummary`. Aggregated view of a test for UI display. Implements `INotifyPropertyChanged`.
|
||||
|
||||
| Property | Type | Description |
|
||||
|----------|------|-------------|
|
||||
| `ROI_SUFFIX` | `const string` | Constant value `@"_ROI Period"` |
|
||||
| `Id` | `string` | Composite ID (TestRun.Id + event number) |
|
||||
| `SetupName` | `string` | Test setup name |
|
||||
| `Description` | `string` | Test description |
|
||||
| `ChannelCount` | `int` | Number of channels |
|
||||
| `FileDate` | `DateTime` | File date |
|
||||
| `TimeStamp` | `DateTime` | Test timestamp |
|
||||
| `DataType` | `string` | Data type |
|
||||
| `IsSelected` | `bool` | Selection state with side effects |
|
||||
| `Graphs` | `List<ITestGraphs>` | Graph configurations |
|
||||
| `Channels` | `List<ITestChannel>` | Channel list |
|
||||
| `CalculatedChannels` | `List<ITestChannel>` | Calculated channels |
|
||||
| `Parent` | `IBaseViewModel` | Parent view model |
|
||||
| `CalibrationBehavior` | `CalibrationBehaviors` | Calibration mode (defaults to `NonLinearIfAvailable`) |
|
||||
| `TestMetadata` | `ITestMetadata` | Full metadata reference |
|
||||
| `IsSelectedCommand` | `DelegateCommand` | Command for selection changes |
|
||||
|
||||
**Methods:**
|
||||
- `void SelectionChanged()` - Updates parent's `SelectedTestSummaryList` and publishes selection event
|
||||
- `void OnPropertyChanged(string propertyName)`
|
||||
|
||||
**Events:**
|
||||
- `event PropertyChangedEventHandler PropertyChanged`
|
||||
|
||||
### TestModule
|
||||
Implements `ITestModule`. Hardware module metadata. Implements `INotifyPropertyChanged`.
|
||||
|
||||
| Property | Type | Description |
|
||||
|----------|------|-------------|
|
||||
| `SerialNumber` | `string` | Module serial number |
|
||||
| `BaseSerialNumber` | `string` | Base serial number |
|
||||
| `AaFilterRateHz` | `int` | Anti-alias filter rate |
|
||||
| `Number` | `int` | Module number |
|
||||
| `NumberOfSamples` | `int` | Total samples recorded |
|
||||
| `UnsubsampledNumberOfSamples` | `int` | Samples before subsampling |
|
||||
| `RequestedPostTriggerSeconds` | `double` | Requested post-trigger duration |
|
||||
| `RequestedPreTriggerSeconds` | `double` | Requested pre-trigger duration |
|
||||
| `PostTriggerSeconds` | `double` | Actual post-trigger duration |
|
||||
| `PreTriggerSeconds` | `double` | Actual pre-trigger duration |
|
||||
| `RecordingMode` | `string` | Recording mode string |
|
||||
| `SampleRateHz` | `int` | Sample rate in Hz |
|
||||
| `StartRecordSampleNumber` | `int` | Starting sample number |
|
||||
| `NumberOfChannels` | `int` | Channel count |
|
||||
| `InlineSerializedData` | `bool` | Inline serialization flag |
|
||||
| `StartRecordTimestampSec` | `int` | Start timestamp (seconds) |
|
||||
| `StartRecordTimestampNanoSec` | `int` | Start timestamp (nanoseconds) |
|
||||
| `TriggerTimestampSec` | `int` | Trigger timestamp (seconds) |
|
||||
| `TriggerTimestampNanoSec` | `int` | Trigger timestamp (nanoseconds) |
|
||||
| `TriggerSampleNumbers` | `List<ulong>` | Trigger sample indices |
|
||||
| `PTPMasterSync` | `bool` | PTP master sync status |
|
||||
| `TiltSensorAxisXDegreesPre/Post` | `int` | Tilt sensor readings |
|
||||
| `TiltSensorAxisYDegreesPre/Post` | `int` | Tilt sensor readings |
|
||||
| `TiltSensorAxisZDegreesPre/Post` | `int` | Tilt sensor readings |
|
||||
| `TemperatureLocation1-4Pre/Post` | `int` | Temperature readings |
|
||||
| `Channels` | `List<ITestChannel>` | Module's channels |
|
||||
| `CalculatedChannels` | `List<ITestChannel>` | Module's calculated channels |
|
||||
| `IsSelected` | `bool` | Selection state |
|
||||
|
||||
**Events:**
|
||||
- `event PropertyChangedEventHandler PropertyChanged`
|
||||
|
||||
### TestChannel
|
||||
Implements `ITestChannel`. Comprehensive channel metadata. Extends `BasePropertyChanged`. Marked `[Serializable]`.
|
||||
|
||||
**Identity Properties:**
|
||||
| Property | Type |
|
||||
|----------|------|
|
||||
| `Group`, `SubGroup` | `string` |
|
||||
| `ChannelId` | `string` |
|
||||
| `ChannelDisplayName` | `string` |
|
||||
| `ChannelName2` | `string` |
|
||||
| `HardwareChannelName` | `string` |
|
||||
| `SerialNumber` | `string` |
|
||||
| `ModuleSerialNumber` | `string` |
|
||||
| `Description` | `string` |
|
||||
| `ChannelDescriptionString` | `string` |
|
||||
| `ChannelType` | `string` |
|
||||
| `ChannelGroupName` | `string` |
|
||||
| `Number`, `ChannelNumber` | `int` |
|
||||
| `TestId`, `TestSetupName` | `string` |
|
||||
|
||||
**Calibration Properties:**
|
||||
| Property | Type |
|
||||
|----------|------|
|
||||
| `Sensitivity` | `double` |
|
||||
| `SensitivityUnits` | `string` |
|
||||
| `Bridge` | `string` |
|
||||
| `BridgeResistanceOhms` | `double` |
|
||||
| `ZeroPoint` | `double` |
|
||||
| `DesiredRange` | `double` |
|
||||
| `ActualMaxRangeEu`, `ActualMinRangeEu` | `double` |
|
||||
| `ActualMaxRangeAdc` | `double` (returns `short.MaxValue`) |
|
||||
| `ActualMinRangeAdc` | `double` (returns `short.MinValue`) |
|
||||
| `ActualMaxRangeMv`, `ActualMinRangeMv` | `double` |
|
||||
| `ExcitationVoltage` | `string` |
|
||||
| `MeasuredExcitationVoltage`, `FactoryExcitationVoltage` | `double` |
|
||||
| `MeasuredShuntDeflectionMv`, `TargetShuntDeflectionMv` | `double` |
|
||||
| `LinearizationFormula` | `string` |
|
||||
| `LastCalibrationDate` | `DateTime` |
|
||||
| `SensorId` | `string` |
|
||||
| `SensorCapacity` | `int` |
|
||||
| `SensorPolarity` | `string` |
|
||||
| `UseEUScaler` | `bool` |
|
||||
| `ScaleFactorEU` | `double` |
|
||||
|
||||
**Statistical Properties (all default to `double.NaN`):**
|
||||
| Property | Description |
|
||||
|----------|-------------|
|
||||
| `MinADC`, `MaxADC`, `AveADC`, `StdDevADC`, `T0ADC` | ADC domain statistics |
|
||||
| `MinMV`, `MaxMV`, `AveMV`, `StdDevMV`, `T0MV` | Millivolt domain statistics |
|
||||
| `MinEU`, `MaxEU`, `AveEU`, `StdDevEU`, `T0EU` | Engineering unit statistics |
|
||||
| `MinY`, `MaxY`, `AveY`, `StdDevY`, `T0Value` | Current unit statistics |
|
||||
|
||||
**State Properties:**
|
||||
| Property | Type | Description |
|
||||
|----------|------|-------------|
|
||||
| `IsSelected` | `bool` | Selection state with parent notification |
|
||||
| `IsLocked` | `bool` | Lock state with parent notification |
|
||||
| `IsGraphChannel` | `bool` | Whether channel is in a graph |
|
||||
| `IsCalculatedChannel` | `bool` | Whether this is a calculated channel |
|
||||
| `CanLock` | `bool` | Whether channel can be locked |
|
||||
| `CanSelectChannel` | `bool` | Whether channel can be selected |
|
||||
| `IsExpanded` | `bool` | UI expansion state |
|
||||
| `IsError` | `bool` | Error state |
|
||||
| `ErrorMessage` | `string` | Error message text |
|
||||
| `ChannelColor` | `Color` | Display color |
|
||||
| `ErrorColor` | `Color?` | Red if error, Black otherwise |
|
||||
|
||||
**Methods:**
|
||||
- `ITestChannel Copy()` - Returns shallow copy via `MemberwiseClone()`
|
||||
- `void SetChannelDescriptionAndDisplayName(string channelDescription)` - Sets description and updates display name
|
||||
- `override string ToString()` - Returns "N/A" for test-specific embedded strings, otherwise `ChannelDescriptionString`
|
||||
|
||||
### TestMetadataList
|
||||
Factory/parser class for creating test metadata from XML files.
|
||||
|
||||
**Methods:**
|
||||
| Signature | Description |
|
||||
|-----------|-------------|
|
||||
| `Task<ObservableCollection<ITestSummary>> GetTestSummaryListAsync(IBaseViewModel parent, string path, string file, string pattern = "")` | Async wrapper (actually synchronous) |
|
||||
| `ObservableCollection<ITestSummary> GetTestSummaryList(IBaseViewModel parent, string path, string file = "", string pattern = "")` | Builds test summary list with parent |
|
||||
| `ObservableCollection<ITestSummary> GetTestSummaryList(string path, string file = "", string pattern = "")` | Builds test summary list without parent |
|
||||
| `List<ITestMetadata> GetTestMetadataList(XDocument xDoc, string path, string file)` | Parses XDocument into metadata objects |
|
||||
|
||||
---
|
||||
|
||||
## 3. Invariants
|
||||
|
||||
- **TestSummary.CalibrationBehavior** defaults to `CalibrationBehaviors.NonLinearIfAvailable`
|
||||
- **TestSummary.IsSelected** defaults to `false`
|
||||
- **TestChannel.ActualMaxRangeAdc** always returns `short.MaxValue` (32767)
|
||||
- **TestChannel.ActualMinRangeAdc** always returns `short.MinValue` (-32768)
|
||||
- **TestChannel** statistical properties (`MinADC`, `MaxEU`, etc.) are initialized to `double.NaN`
|
||||
- **TestChannel.ChannelColor** defaults to `Colors.Transparent`
|
||||
- **TestChannel.ErrorColor** returns `Colors.Red` when `IsError` is `true`, `Colors.Black` otherwise
|
||||
- **TestMetadataList.GetTestSummaryList** returns results ordered by `TimeStamp.Ticks` descending
|
||||
- **TestMetadataList** uses file extension `.dts` as default pattern when none specified
|
||||
- **TestMetadataList.GetTimestamp** falls back to `TestSetup.TimeStamp` if PTP timestamps are invalid or before 1/1/1990
|
||||
|
||||
---
|
||||
|
||||
## 4. Dependencies
|
||||
|
||||
### This module depends on:
|
||||
- `DTS.Common.Interface` - Core interfaces (`ITestMetadata`, `ITestRunMetadata`, `ITestSetupMetadata`, `ITestGraphs`, `ITestModule`, `ITestChannel`, `ITestSummary`)
|
||||
- `DTS.Common.Interface.TestDefinition` - Test definition interfaces
|
||||
- `DTS.Common.Enums.Sensors` - `CalibrationBehaviors` enum
|
||||
- `DTS.Common.Enums.Viewer` - Viewer-specific enums
|
||||
- `DTS.Common.Base` - `BasePropertyChanged`, `IBaseViewModel`
|
||||
- `DTS.Common.Utilities` - Utility classes
|
||||
- `DTS.Common.Utils` - `PTP1588Timestamps`, `TestUtils`
|
||||
- `DTS.Common.XMLUtils` - `TestMetadataXml` for XML parsing
|
||||
- `DTS.Common.Constants` - Constants including `EventNumber`
|
||||
- `Microsoft.Practices.Prism.Commands` - `DelegateCommand`
|
||||
- `Microsoft.Practices.Prism.Events` - `IEventAggregator`
|
||||
- `Microsoft.Practices.ServiceLocation` - `ServiceLocator`
|
||||
- `System.Windows.Media` - `Color`, `Colors`
|
||||
- `System.Xml.Linq` - `XDocument`, `XElement`
|
||||
|
||||
### What depends on this module:
|
||||
- Not determinable from source alone; consumers would reference these classes via the `ITestMetadata` family of interfaces.
|
||||
|
||||
---
|
||||
|
||||
## 5. Gotchas
|
||||
|
||||
1. **Async
|
||||
Reference in New Issue
Block a user