This commit is contained in:
2026-04-17 14:55:32 -04:00
commit bc3ac1d4c9
18017 changed files with 4371742 additions and 0 deletions

View File

@@ -0,0 +1,64 @@
---
source_files:
- DataPRO/Modules/Realtime/RealtimeModule/RealtimeModule.cs
generated_at: "2026-04-17T16:15:36.169206+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "7c2cdf5e5e1be734"
---
# RealtimeModule
### Purpose
This module serves as the Prism module initializer for the Realtime functionality within the application. It is responsible for registering the Realtime channel selection View and ViewModel with the Unity dependency injection container and providing assembly metadata (name, image, group, region) that the shell uses to display and manage the module. The module is categorized under the "Prepare" assembly group and targets the `RealtimeModuleRegion`.
### Public Interface
**`RealtimeModule` (class)**
- Implements `Prism.Modularity.IModule`
- `RealtimeModule(IUnityContainer unityContainer)` - Constructor accepting the Unity container via dependency injection.
- `void Initialize()` - Registers `IRealtimeChannelSelectView` to `RealtimeChannelSelectView` and `IRealtimeChannelSelectViewModel` to `RealtimeChannelSelectViewModel` with the Unity container.
- `void OnInitialized(IContainerProvider containerProvider)` - Empty implementation.
- `void RegisterTypes(IContainerRegistry containerRegistry)` - Calls `Initialize()`.
**`RealtimeModuleNameAttribute` (class)**
- Extends `TextAttribute`.
- `RealtimeModuleNameAttribute()` / `RealtimeModuleNameAttribute(string s)` - Constructors that set `AssemblyName` to `AssemblyNames.RealtimeModule.ToString()`.
- `override string AssemblyName { get; }` - Returns the module name.
- `override Type GetAttributeType()` - Returns `typeof(TextAttribute)`.
- `override string GetAssemblyName()` - Returns `AssemblyName`.
**`RealtimeModuleImageAttribute` (class)**
- Extends `ImageAttribute`.
- `override BitmapImage AssemblyImage { get; }` - Retrieves image via `AssemblyInfo.GetImage(AssemblyNames.RealtimeModule.ToString())`.
- `override string AssemblyName { get; }` - Returns `AssemblyNames.RealtimeModule.ToString()`.
- `override string AssemblyGroup { get; }` - Returns `eAssemblyGroups.Prepare.ToString()`.
- `override eAssemblyRegion AssemblyRegion { get; }` - Returns `eAssemblyRegion.RealtimeModuleRegion`.
- `override Type GetAttributeType()` - Returns `typeof(ImageAttribute)`.
- `override BitmapImage GetAssemblyImage()` - Returns `AssemblyImage`.
- `override string GetAssemblyName()` - Returns `AssemblyName`.
- `override string GetAssemblyGroup()` - Returns `AssemblyGroup`.
- `override eAssemblyRegion GetAssemblyRegion()` - Returns `AssemblyRegion`.
### Invariants
- The `RealtimeModule` class must be instantiated by Prism's module manager with a non-null `IUnityContainer`.
- Assembly-level attributes `RealtimeModuleName` and `RealtimeModuleImageAttribute` are applied exactly once per assembly (`AllowMultiple = false`).
- `AssemblyName`, `AssemblyGroup`, and `AssemblyRegion` properties always return consistent values derived from `DTS.Common` enums/constants.
### Dependencies
**Depends on:**
- `DTS.Common` - Provides `AssemblyNames`, `AssemblyInfo`, `TextAttribute`, `ImageAttribute`, `eAssemblyGroups`, `eAssemblyRegion`.
- `DTS.Common.Interface` - Provides base interfaces.
- `DTS.Common.Interface.Realtime` - Provides `IRealtimeChannelSelectView`, `IRealtimeChannelSelectViewModel`.
- `Prism.Ioc`, `Prism.Modularity` - Prism framework for modular applications.
- `Unity` - Dependency injection container.
**Depended on by:**
- The application shell/bootstrapper, which discovers and loads this module.
### Gotchas
- The `Initialize()` method is called both directly and via `RegisterTypes()`, which could lead to double-registration if `RegisterTypes` is called multiple times. However, `RegisterType` in Unity typically overwrites existing registrations by default.
- The `RealtimeModuleImageAttribute` constructor parameter `string s` is accepted but never used in either constructor overload.
- `OnInitialized` is empty, so any post-initialization logic would need to be added elsewhere.
---

View File

@@ -0,0 +1,22 @@
---
source_files:
- DataPRO/Modules/Realtime/RealtimeModule/Properties/Settings.Designer.cs
- DataPRO/Modules/Realtime/RealtimeModule/Properties/AssemblyInfo.cs
generated_at: "2026-04-17T16:28:16.257712+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "a61a96468e87e18b"
---
# Properties
### Purpose
This module contains auto-generated build artifacts for the `RealtimeModule` assembly, providing application settings infrastructure and assembly metadata. It enables the RealtimeModule to persist and retrieve configuration values using the standard .NET Settings pattern, with thread-safe singleton access.
### Public Interface
- **`Settings` class** (internal sealed partial) - Inherits from `global::System.Configuration.ApplicationSettingsBase`. Provides strongly-typed access to application settings.
- `public static Settings Default { get; }` - Returns a synchronized singleton instance of the Settings class, lazily initialized via `ApplicationSettingsBase.Synchronized(new Settings())`.
### Invariants
- The `Settings` class is auto-generated by `SettingsSingleFileGenerator` (version 17.10.0.0) and should not be manually edited.
- The `defaultInstance` field is

View File

@@ -0,0 +1,35 @@
---
source_files:
- DataPRO/Modules/Realtime/RealtimeModule/Resources/TranslateExtension.cs
- DataPRO/Modules/Realtime/RealtimeModule/Resources/StringResources.Designer.cs
generated_at: "2026-04-17T16:12:38.872981+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "3c704825c4304c8c"
---
# Resources
### 1. Purpose
This module provides localization infrastructure for the `GroupList` assembly. It contains a XAML markup extension for declarative string lookup and a strongly-typed resource accessor class generated from a `.resx` file. It centralizes UI string management for group-related views (e.g., "AssociatedTestSetups", "Channels", "Description").
### 2. Public Interface
**Class: `TranslateExtension`** (inherits `MarkupExtension`)
* `TranslateExtension(string key)`: Constructor that accepts the resource key to look up.
* `object ProvideValue(IServiceProvider serviceProvider)`: Returns the localized string for the stored `_key`. Returns `#stringnotfound#` if the key is null/empty, or `#stringnotfound# {key}` if the lookup fails.
**Class: `StringResources`** (internal, auto-generated)
* `static ResourceManager ResourceManager`: Gets the cached `ResourceManager` instance for the `GroupList.Resources.StringResources` resource set.
* `static CultureInfo Culture`: Gets or sets the current UI culture for resource lookups.
* `static string AssociatedTestSetups`: Looks up the "AssociatedTestSetups" string.
* `static string Channels`: Looks up the "Channels" string.
* `static string Description`: Looks up the "Description" string.
* `static string LastModified`: Looks up the "LastModified" string.
* `static string LastModifiedBy`: Looks up the "LastModifiedBy" string.
* `static string Name`: Looks up the "Name" string.
* `static string TemplateName`: Looks up the "TemplateName" string.
### 3. Invariants
* `TranslateExtension._key` is immutable after construction (readonly).
* `TranslateExtension` always returns a non-null string; it never throws on missing keys, instead returning a specific error constant.
* `

View File

@@ -0,0 +1,67 @@
---
source_files:
- DataPRO/Modules/Realtime/RealtimeModule/View/RealtimeChannelSelectView.xaml.cs
generated_at: "2026-04-17T16:15:36.171898+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "a7e08a3e77cd2e83"
---
# View
### Purpose
This ViewModel manages the Realtime channel selection UI logic. It handles filtering and displaying available realtime channels, responding to user search input, publishing channel selection events, and responding to global notification events (busy indicator and notifications). It acts as the intermediary between the View and the event aggregation system.
### Public Interface
**`RealtimeChannelSelectViewModel` (class)**
- Implements `IRealtimeChannelSelectViewModel`
- `RealtimeChannelSelectViewModel(IRealtimeChannelSelectView view, IRegionManager regionManager, IEventAggregator eventAggregator, IUnityContainer unityContainer)` - Constructor that wires up the view, sets DataContext, initializes interaction requests, and subscribes to events.
**Properties:**
- `IRealtimeChannelSelectView ChannelSelectView { get; set; }` - The associated view.
- `InteractionRequest<Notification> NotificationRequest { get; }` - For raising notification popups.
- `InteractionRequest<Confirmation> ConfirmationRequest { get; }` - For raising confirmation dialogs.
- `IRealtimeChannel[] RealtimeChannels { get; set; }` - Filtered channels displayed to user; defaults to empty array.
- `bool IsDirty { get; }` - Always returns `false`.
- `bool IsBusy { get; set; }` - Bound to busy indicator; notifies on change.
- `bool IsMenuIncluded { get; set; }` - Notifies on change.
- `bool IsNavigationIncluded { get; set; }` - Notifies on change.
**Methods:**
- `void SetAvailableChannels(IRealtimeChannel[] channels)` - Sets `_allChannels` and calls `Filter()`.
- `void SetSearchText(string searchText)` - Sets `_searchTerm` and calls `Filter()`.
- `void SetRealtimeChannel(IRealtimeChannel channel)` - Publishes `RealtimeChannelSelectedEvent` with the selected channel.
- `void OnPropertyChanged(string propertyName)` - Raises `PropertyChanged` event.
- `void Unset()` - Empty.
- `void Cleanup()` - Empty.
- `Task CleanupAsync()` - Returns `Task.CompletedTask`.
- `void Initialize()` - Empty.
- `void Initialize(object parameter)` - Empty.
- `void Initialize(object parameter, object model)` - Empty.
- `Task InitializeAsync()` - Returns `Task.CompletedTask`.
- `Task InitializeAsync(object parameter)` - Returns `Task.CompletedTask`.
- `void Activated()` - Empty.
**Events:**
- `event PropertyChangedEventHandler PropertyChanged` - Implements `INotifyPropertyChanged`.
### Invariants
- `RealtimeChannels` is never null (initialized to empty array).
- `_allChannels` is private and only modified via `SetAvailableChannels`.
- `Filter()` is always called after modifying `_searchTerm` or `_allChannels`.
- The ViewModel is created as a shared singleton (`[PartCreationPolicy(CreationPolicy.Shared)]`).
- Event subscriptions use `ThreadOption.PublisherThread` for `BusyIndicatorChangeNotification` with `keepSubscriberReferenceAlive = true`.
### Dependencies
**Depends on:**
- `DTS.Common.Events` - Provides `NotificationContentEventArgs`.
- `DTS.Common.Events.Realtime` - Provides `RaiseNotification`, `BusyIndicatorChangeNotification`, `RealtimeChannelSelectedEvent`.
- `DTS.Common.Interactivity` - Provides `InteractionRequest<T>`, `Notification`, `Confirmation`.
- `DTS.Common.Interface.Realtime` - Provides `IRealtimeChannel`, `IRealtimeChannelSelectView`, `IRealtimeChannelSelectViewModel`.
- `Prism.Events` - Provides `IEventAggregator`, `ThreadOption`.
- `Prism.Regions` - Provides `IRegionManager`.
- `Unity` - Provides `IUnityContainer`.
**Depended on by:**
- `RealtimeModule` (registers and resolves this

View File

@@ -0,0 +1,67 @@
---
source_files:
- DataPRO/Modules/Realtime/RealtimeModule/ViewModel/RealtimeChannelSelectViewModel.cs
generated_at: "2026-04-17T16:15:36.171229+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "24dfd3094a915001"
---
# ViewModel
### Purpose
This ViewModel manages the Realtime channel selection UI logic. It handles filtering and displaying available realtime channels, responding to user search input, publishing channel selection events, and responding to global notification events (busy indicator and notifications). It acts as the intermediary between the View and the event aggregation system.
### Public Interface
**`RealtimeChannelSelectViewModel` (class)**
- Implements `IRealtimeChannelSelectViewModel`
- `RealtimeChannelSelectViewModel(IRealtimeChannelSelectView view, IRegionManager regionManager, IEventAggregator eventAggregator, IUnityContainer unityContainer)` - Constructor that wires up the view, sets DataContext, initializes interaction requests, and subscribes to events.
**Properties:**
- `IRealtimeChannelSelectView ChannelSelectView { get; set; }` - The associated view.
- `InteractionRequest<Notification> NotificationRequest { get; }` - For raising notification popups.
- `InteractionRequest<Confirmation> ConfirmationRequest { get; }` - For raising confirmation dialogs.
- `IRealtimeChannel[] RealtimeChannels { get; set; }` - Filtered channels displayed to user; defaults to empty array.
- `bool IsDirty { get; }` - Always returns `false`.
- `bool IsBusy { get; set; }` - Bound to busy indicator; notifies on change.
- `bool IsMenuIncluded { get; set; }` - Notifies on change.
- `bool IsNavigationIncluded { get; set; }` - Notifies on change.
**Methods:**
- `void SetAvailableChannels(IRealtimeChannel[] channels)` - Sets `_allChannels` and calls `Filter()`.
- `void SetSearchText(string searchText)` - Sets `_searchTerm` and calls `Filter()`.
- `void SetRealtimeChannel(IRealtimeChannel channel)` - Publishes `RealtimeChannelSelectedEvent` with the selected channel.
- `void OnPropertyChanged(string propertyName)` - Raises `PropertyChanged` event.
- `void Unset()` - Empty.
- `void Cleanup()` - Empty.
- `Task CleanupAsync()` - Returns `Task.CompletedTask`.
- `void Initialize()` - Empty.
- `void Initialize(object parameter)` - Empty.
- `void Initialize(object parameter, object model)` - Empty.
- `Task InitializeAsync()` - Returns `Task.CompletedTask`.
- `Task InitializeAsync(object parameter)` - Returns `Task.CompletedTask`.
- `void Activated()` - Empty.
**Events:**
- `event PropertyChangedEventHandler PropertyChanged` - Implements `INotifyPropertyChanged`.
### Invariants
- `RealtimeChannels` is never null (initialized to empty array).
- `_allChannels` is private and only modified via `SetAvailableChannels`.
- `Filter()` is always called after modifying `_searchTerm` or `_allChannels`.
- The ViewModel is created as a shared singleton (`[PartCreationPolicy(CreationPolicy.Shared)]`).
- Event subscriptions use `ThreadOption.PublisherThread` for `BusyIndicatorChangeNotification` with `keepSubscriberReferenceAlive = true`.
### Dependencies
**Depends on:**
- `DTS.Common.Events` - Provides `NotificationContentEventArgs`.
- `DTS.Common.Events.Realtime` - Provides `RaiseNotification`, `BusyIndicatorChangeNotification`, `RealtimeChannelSelectedEvent`.
- `DTS.Common.Interactivity` - Provides `InteractionRequest<T>`, `Notification`, `Confirmation`.
- `DTS.Common.Interface.Realtime` - Provides `IRealtimeChannel`, `IRealtimeChannelSelectView`, `IRealtimeChannelSelectViewModel`.
- `Prism.Events` - Provides `IEventAggregator`, `ThreadOption`.
- `Prism.Regions` - Provides `IRegionManager`.
- `Unity` - Provides `IUnityContainer`.
**Depended on by:**
- `RealtimeModule` (registers and resolves this