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,45 @@
---
source_files:
- DTS Viewer/DTS.Viewer.Modules/DTS.Viewer.Navigation/Properties/AssemblyInfo.cs
generated_at: "2026-04-16T11:19:57.689390+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "24368b2aa50ace4f"
---
# Documentation: DTS.Viewer.Navigation Assembly Configuration
## 1. Purpose
This file provides assembly-level metadata and configuration for the `DTS.Viewer.Navigation` module. It exists to define the identity, versioning, and COM visibility settings for the compiled output (DLL) of this specific project within the larger DTS Viewer solution. It does not contain executable logic.
## 2. Public Interface
This file does not expose any public classes, methods, or functions. It applies the following assembly-level attributes:
* **`AssemblyTitle`**: Set to `"DTS.Viewer.Navigation"`.
* **`AssemblyDescription`**: Set to an empty string.
* **`AssemblyConfiguration`**: Set to an empty string.
* **`AssemblyCompany`**: Set to an empty string.
* **`AssemblyProduct`**: Set to `"DTS.Viewer.Navigation"`.
* **`AssemblyCopyright`**: Set to `"Copyright © 2017"`.
* **`AssemblyTrademark`**: Set to an empty string.
* **`AssemblyCulture`**: Set to an empty string.
* **`ComVisible`**: Set to `false`. This prevents types in this assembly from being visible to COM components.
* **`Guid`**: Set to `"237c6e9f-9118-4bec-a55a-e194232ac330"`. This acts as the ID for the type library if the assembly is exposed to COM.
* **`AssemblyVersion`**: Set to `"1.0.0.0"`.
* **`AssemblyFileVersion`**: Set to `"1.0.0.0"`.
## 3. Invariants
* **COM Visibility:** The assembly is explicitly marked with `ComVisible(false)`. Types within this assembly are not accessible to COM clients unless individual types are explicitly marked as visible.
* **Versioning:** Both the assembly version and file version are fixed at `1.0.0.0`. The automatic versioning wildcard syntax (e.g., `1.0.*`) is commented out and not active.
## 4. Dependencies
* **Internal Dependencies:**
* `System.Reflection`
* `System.Runtime.CompilerServices`
* `System.Runtime.InteropServices`
* **External Dependencies:** None identified from this source file alone. The module `DTS.Viewer.Navigation` is likely a component of the larger `DTS Viewer` application, but its specific internal dependencies cannot be determined from this file.
## 5. Gotchas
* **Missing Metadata:** The `AssemblyDescription`, `AssemblyConfiguration`, and `AssemblyCompany` attributes are present but contain empty strings. This may result in missing metadata in the compiled assembly properties.
* **Legacy Project Structure:** The existence of an explicit `AssemblyInfo.cs` file suggests this project uses the older .NET Framework SDK-style project format (pre-.NET Core/5+ style), which typically auto-generates this information in the `.csproj` file.
* **Static Versioning:** The version numbers are hardcoded to `1.0.0.0`. If continuous integration or automatic build numbering is required, the commented-out wildcard pattern or a build target override would be necessary.

View File

@@ -0,0 +1,66 @@
---
source_files:
- DTS Viewer/DTS.Viewer.Modules/DTS.Viewer.Navigation/View/NavigationItem.xaml.cs
- DTS Viewer/DTS.Viewer.Modules/DTS.Viewer.Navigation/View/NavigationView.xaml.cs
generated_at: "2026-04-16T11:19:54.392457+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "e298dba7e9bc3e6c"
---
# Documentation: DTS.Viewer.Navigation Views
## 1. Purpose
This module provides WPF view components for the navigation subsystem of the DTS Viewer application. It contains two code-behind classes—`NavigationItem` and `NavigationView`—that serve as the presentation layer for navigation UI elements. These views are part of a modular architecture (`DTS.Viewer.Modules`) and implement framework-level interfaces to integrate with the broader application infrastructure. The actual UI layout and visual composition are defined in corresponding XAML files (not provided).
---
## 2. Public Interface
### `NavigationItem` (class)
**Namespace:** `DTS.Viewer.Navigation.View`
**Implements:** `IBaseView` (from `DTS.Common.Base`)
| Member | Signature | Description |
|--------|-----------|-------------|
| Constructor | `public NavigationItem()` | Default constructor. Calls `InitializeComponent()` to load the associated XAML layout. |
### `NavigationView` (class)
**Namespace:** `DTS.Viewer.Navigation`
**Implements:** `INavigationView` (from `DTS.Common.Interface`)
| Member | Signature | Description |
|--------|-----------|-------------|
| Constructor | `public NavigationView()` | Default constructor. Calls `InitializeComponent()` to load the associated XAML layout. |
---
## 3. Invariants
- Both classes are declared `partial`, implying a code-behind pattern where the XAML compiler generates additional class members.
- `InitializeComponent()` must be called in the constructor for each view; this is a WPF requirement for loading the compiled XAML resource.
- `NavigationItem` must always implement `IBaseView`.
- `NavigationView` must always implement `INavigationView`.
- The associated XAML files (`NavigationItem.xaml` and `NavigationView.xaml`) must exist and be properly linked as compiled resources.
---
## 4. Dependencies
### This module depends on:
- `DTS.Common.Base` — Provides `IBaseView` interface
- `DTS.Common.Interface` — Provides `INavigationView` interface
- WPF presentation framework (implicit via `InitializeComponent()` and `partial` class pattern)
### What depends on this module:
- **Cannot be determined from source alone.** No downstream consumers are visible in these files.
---
## 5. Gotchas
- **Interface contracts are unknown:** The requirements of `IBaseView` and `INavigationView` are not visible in the provided source. Developers must consult `DTS.Common.Base` and `DTS.Common.Interface` to understand expected members or behaviors.
- **All logic resides in XAML:** The code-behind files contain no business logic beyond initialization. Visual behavior, data bindings, and event handlers are defined in the corresponding `.xaml` files (not provided).
- **Namespace inconsistency:** `NavigationItem` resides in `DTS.Viewer.Navigation.View`, while `NavigationView` resides directly in `DTS.Viewer.Navigation`. This may be intentional (separating view models/views) or a historical quirk worth verifying.
- **No explicit DataContext assignment:** Neither constructor sets a DataContext, suggesting binding or view model injection occurs elsewhere (possibly in XAML or via an external framework).

View File

@@ -0,0 +1,92 @@
---
source_files:
- DTS Viewer/DTS.Viewer.Modules/DTS.Viewer.Navigation/ViewModel/NavigationViewModel.cs
generated_at: "2026-04-16T11:19:33.784254+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "17ac7f526470fc92"
---
# Documentation: NavigationViewModel
## 1. Purpose
`NavigationViewModel` is a ViewModel component responsible for managing the navigation UI region within the DTS Viewer application. It serves as a mediator between the `INavigationView` and the application's navigation system, handling notification and confirmation dialogs via Prism's interaction request patterns. The class inherits from `BaseViewModel<INavigationViewModel>` and implements `INavigationViewModel`, integrating with the Prism/Unity dependency injection and region management framework.
---
## 2. Public Interface
### Constructor
```csharp
public NavigationViewModel(INavigationView view, IRegionManager regionManager, IEventAggregator eventAggregator, IUnityContainer unityContainer)
```
Initializes the navigation view model with its dependencies. Sets the view's `DataContext` to itself, creates `NotificationRequest` and `ConfirmationRequest` instances, and subscribes to the `RaiseNotification` event via the event aggregator.
### Properties
| Property | Signature | Description |
|----------|-----------|-------------|
| `NavigationView` | `INavigationView { get; private set; }` | Holds the associated navigation view instance. |
| `NotificationRequest` | `InteractionRequest<Notification> { get; private set; }` | Interaction request for displaying notifications. |
| `ConfirmationRequest` | `new InteractionRequest<Confirmation> { get; private set; }` | Interaction request for displaying confirmations. Hides base member. |
| `ContextNavigationRegion` | `object { get; set; }` | Gets or sets the content of the `NavigationRegion` on the concrete `NavigationView`. Raises `OnPropertyChanged` on set. |
| `HeaderInfo` | `string { get; }` | Returns the constant string `"NavigationRegion"`. |
| `IsBusy` | `new bool { get; set; }` | Throws `NotImplementedException` on both getter and setter. Hides base member. |
| `IsDirty` | `new bool { get; }` | Throws `NotImplementedException` on getter. Hides base member. |
| `IsNavigationIncluded` | `new bool { get; set; }` | Auto-property hiding base member. |
### Events
| Event | Signature | Description |
|-------|-----------|-------------|
| `PropertyChanged` | `new event PropertyChangedEventHandler` | Hides the base class event. Invoked via `OnPropertyChanged`. |
### Methods
| Method | Signature | Description |
|--------|-----------|-------------|
| `Initialize` | `override void Initialize()` | Empty override. No initialization logic. |
| `Initialize` | `override void Initialize(object parameter)` | Casts `parameter` to `IBaseViewModel` and assigns to private `Parent` field. |
| `OnRaiseNotification` | `void OnRaiseNotification(NotificationContentEventArgs eventArgsWithTitle)` | Private event handler. Converts `NotificationContentEventArgs` to `NotificationContentEventArgsWithoutTitle` and raises the `NotificationRequest`. |
---
## 3. Invariants
- `NavigationView` is assigned in the constructor and is expected to be non-null throughout the instance lifetime.
- The `DataContext` of `NavigationView` is always set to `this` (the ViewModel itself).
- `NotificationRequest` and `ConfirmationRequest` are initialized in the constructor and never reassigned.
- The `RaiseNotification` event subscription is established at construction time and remains active for the instance lifetime.
- `ContextNavigationRegion` property getter assumes `NavigationView` can be cast to the concrete `NavigationView` type and that `NavigationRegion` is non-null.
---
## 4. Dependencies
### This module depends on:
- `DTS.Common.Base``BaseViewModel<T>`, `IBaseViewModel`
- `DTS.Common.Events``RaiseNotification` (event), `NotificationContentEventArgs`
- `DTS.Common.Interactivity``InteractionRequest<T>`, `Notification`, `Confirmation`
- `DTS.Common.Interface``INavigationViewModel`, `INavigationView`
- `Prism.Events``IEventAggregator`
- `Prism.Regions``IRegionManager`
- `Unity``IUnityContainer`
### Consumers:
- Not determinable from this source file alone. The class is public and designed for use by other modules in the DTS.Viewer application.
---
## 5. Gotchas
1. **Member hiding with `new` keyword**: Multiple members (`ConfirmationRequest`, `IsBusy`, `IsDirty`, `IsNavigationIncluded`, `PropertyChanged`) use `new` to hide base class members. This can cause confusion when casting to base types or interfaces, as the hidden members will not be invoked.
2. **NotImplementedException on `IsBusy` and `IsDirty`**: Both properties throw `NotImplementedException` on access. Calling code must not attempt to read or write these properties.
3. **Concrete type cast in `ContextNavigationRegion`**: The property casts `INavigationView NavigationView` to the concrete `NavigationView` type to access `NavigationRegion.Content`. This breaks the abstraction provided by the interface and creates tight coupling to the concrete view implementation.
4. **Unused private fields**: `Parent`, `EventAggregator`, and `UnityContainer` are stored as private fields but `Parent` is only assigned (never read), and `EventAggregator`/`UnityContainer` are only used for subscription in the constructor. This may indicate incomplete implementation or dead code.
5. **ReSharper suppression directives**: The file contains multiple `// ReSharper disable` comments (`CheckNamespace`, `NotAccessedField.Local`, `UnusedAutoPropertyAccessor.Local`, `AutoPropertyCanBeMadeGetOnly.Local`), suggesting known code quality issues that have been suppressed rather than addressed.