init
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
---
|
||||
source_files:
|
||||
- DTS Viewer/DTS.Viewer.Modules/DTS.Viewer.Navigation/Properties/AssemblyInfo.cs
|
||||
generated_at: "2026-04-16T13:57:47.028867+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 defines the assembly's identity, version, and COM visibility settings using .NET attributes. This module appears to be a component of a larger "DTS Viewer" application, specifically handling navigation logic, though the specific implementation details are not contained within this file.
|
||||
|
||||
## 2. Public Interface
|
||||
This file does not contain public classes, methods, or functions. It strictly defines assembly-level attributes.
|
||||
|
||||
**Assembly Attributes:**
|
||||
* **`AssemblyTitle`**: Set to `"DTS.Viewer.Navigation"`.
|
||||
* **`AssemblyDescription`**: Empty.
|
||||
* **`AssemblyConfiguration`**: Empty.
|
||||
* **`AssemblyCompany`**: Empty.
|
||||
* **`AssemblyProduct`**: Set to `"DTS.Viewer.Navigation"`.
|
||||
* **`AssemblyCopyright`**: Set to `"Copyright © 2017"`.
|
||||
* **`AssemblyTrademark`**: Empty.
|
||||
* **`AssemblyCulture`**: Empty.
|
||||
* **`ComVisible`**: Set to `false`. Types in this assembly are not visible to COM components.
|
||||
* **`Guid`**: Set to `"237c6e9f-9118-4bec-a55a-e194232ac330"`.
|
||||
* **`AssemblyVersion`**: Set to `"1.0.0.0"`.
|
||||
* **`AssemblyFileVersion`**: Set to `"1.0.0.0"`.
|
||||
|
||||
## 3. Invariants
|
||||
* **COM Visibility:** The assembly is explicitly configured to prevent types from being exposed to COM components (`ComVisible(false)`).
|
||||
* **Versioning:** Both the assembly version and file version are fixed at `1.0.0.0`.
|
||||
* **Identity:** The assembly is identified by the GUID `237c6e9f-9118-4bec-a55a-e194232ac330`.
|
||||
|
||||
## 4. Dependencies
|
||||
**Internal Dependencies (Imports):**
|
||||
* `System.Reflection`
|
||||
* `System.Runtime.CompilerServices`
|
||||
* `System.Runtime.InteropServices`
|
||||
|
||||
**External Dependencies:**
|
||||
* None identified from source alone. (This file acts as a configuration layer for the assembly itself).
|
||||
|
||||
**Dependents:**
|
||||
* The main `DTS Viewer` application likely depends on this assembly, but this cannot be confirmed from this file alone.
|
||||
|
||||
## 5. Gotchas
|
||||
* **Stale Copyright:** The `AssemblyCopyright` attribute contains a hardcoded year of 2017, which may be outdated.
|
||||
* **SDK-Style Project Conflict:** If this project is migrated to a modern SDK-style `.csproj` format (.NET Core/.NET 5+), these attributes may cause build warnings (e.g., CS0579) because the SDK auto-generates these attributes by default. The file may need to be removed or the project configured to disable auto-generation of these attributes.
|
||||
* **Missing Description:** The `AssemblyDescription` attribute is an empty string, providing no documentation on the assembly's purpose at the metadata level.
|
||||
@@ -0,0 +1,68 @@
|
||||
---
|
||||
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-16T13:57:48.771766+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 within the DTS Viewer application. It contains two code-behind classes—`NavigationItem` and `NavigationView`—that serve as the visual elements for rendering navigation items and the overall navigation container, respectively. These views follow the standard WPF code-behind pattern, delegating UI layout to their associated XAML files while implementing framework-specific interfaces for integration with the broader application architecture.
|
||||
|
||||
---
|
||||
|
||||
## 2. Public Interface
|
||||
|
||||
### `NavigationItem` (class)
|
||||
**Namespace:** `DTS.Viewer.Navigation.View`
|
||||
**Implements:** `IBaseView` (from `DTS.Common.Base`)
|
||||
|
||||
| Member | Signature | Description |
|
||||
|--------|-----------|-------------|
|
||||
| Constructor | `public NavigationItem()` | Default constructor that initializes the XAML component via `InitializeComponent()`. |
|
||||
|
||||
---
|
||||
|
||||
### `NavigationView` (class)
|
||||
**Namespace:** `DTS.Viewer.Navigation`
|
||||
**Implements:** `INavigationView` (from `DTS.Common.Interface`)
|
||||
|
||||
| Member | Signature | Description |
|
||||
|--------|-----------|-------------|
|
||||
| Constructor | `public NavigationView()` | Default constructor that initializes the XAML component via `InitializeComponent()`. |
|
||||
|
||||
---
|
||||
|
||||
## 3. Invariants
|
||||
|
||||
- Both classes are declared `partial`, indicating they are paired with XAML-generated partial classes at compile time.
|
||||
- `InitializeComponent()` must be called in the constructor for each view; this is a WPF requirement for loading the associated XAML resource.
|
||||
- `NavigationItem` must always implement `IBaseView`.
|
||||
- `NavigationView` must always implement `INavigationView`.
|
||||
- The namespaces differ: `NavigationItem` resides in `DTS.Viewer.Navigation.View`, while `NavigationView` resides directly in `DTS.Viewer.Navigation`.
|
||||
|
||||
---
|
||||
|
||||
## 4. Dependencies
|
||||
|
||||
### This module depends on:
|
||||
- `DTS.Common.Base` — Provides the `IBaseView` interface used by `NavigationItem`.
|
||||
- `DTS.Common.Interface` — Provides the `INavigationView` interface used by `NavigationView`.
|
||||
- WPF infrastructure (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. Likely consumers would be module initialization code, view models, or dependency injection containers within the `DTS.Viewer.Navigation` assembly or broader application.
|
||||
|
||||
---
|
||||
|
||||
## 5. Gotchas
|
||||
|
||||
- **Interface contracts are unknown:** The behaviors expected by `IBaseView` and `INavigationView` are not visible in these source files. Developers should consult `DTS.Common.Base` and `DTS.Common.Interface` for interface definitions.
|
||||
- **No additional logic:** Both classes contain only initialization code. Any view-specific behavior (event handlers, data binding setup, etc.) is either in the XAML files or handled elsewhere (e.g., attached view models).
|
||||
- **Namespace inconsistency:** `NavigationItem` is placed in a `.View` sub-namespace while `NavigationView` is not. This may be intentional or a historical inconsistency—verify project naming conventions before adding new views.
|
||||
- **XAML files not provided:** The actual UI structure, visual states, and resource dictionaries for these views are defined in `NavigationItem.xaml` and `NavigationView.xaml`, which are not included in this source dump.
|
||||
@@ -0,0 +1,105 @@
|
||||
---
|
||||
source_files:
|
||||
- DTS Viewer/DTS.Viewer.Modules/DTS.Viewer.Navigation/ViewModel/NavigationViewModel.cs
|
||||
generated_at: "2026-04-16T13:57:29.392045+00:00"
|
||||
model: "zai-org/GLM-5-FP8"
|
||||
schema_version: 1
|
||||
sha256: "17ac7f526470fc92"
|
||||
---
|
||||
|
||||
# Documentation: NavigationViewModel
|
||||
|
||||
## 1. Purpose
|
||||
|
||||
The `NavigationViewModel` class serves as the view model for the navigation component within the DTS Viewer application. It acts as a mediator between the `INavigationView` and the application's navigation infrastructure, managing the content displayed in the navigation region and handling notification events via Prism's `IEventAggregator`. This class inherits from `BaseViewModel<INavigationViewModel>` and implements `INavigationViewModel`, providing data binding context for the navigation view and supporting interaction requests for notifications and confirmations.
|
||||
|
||||
---
|
||||
|
||||
## 2. Public Interface
|
||||
|
||||
### Constructor
|
||||
|
||||
```csharp
|
||||
public NavigationViewModel(INavigationView view, IRegionManager regionManager, IEventAggregator eventAggregator, IUnityContainer unityContainer)
|
||||
```
|
||||
Initializes a new instance of `NavigationViewModel`. Sets the view's `DataContext` to itself, creates new `NotificationRequest` and `ConfirmationRequest` instances, stores references to the event aggregator and Unity container, and subscribes to the `RaiseNotification` event.
|
||||
|
||||
---
|
||||
|
||||
### Properties
|
||||
|
||||
| Property | Type | Description |
|
||||
|----------|------|-------------|
|
||||
| `NavigationView` | `INavigationView` | Gets the associated navigation view instance. Set once in constructor. |
|
||||
| `NotificationRequest` | `InteractionRequest<Notification>` | Interaction request for displaying notifications to the user. |
|
||||
| `ConfirmationRequest` | `InteractionRequest<Confirmation>` | Interaction request for displaying confirmation dialogs. Declared with `new` keyword. |
|
||||
| `ContextNavigationRegion` | `object` | Gets or sets the content of the navigation region. Getter/setter directly access `((NavigationView)NavigationView).NavigationRegion.Content`. Raises `PropertyChanged` on set. |
|
||||
| `HeaderInfo` | `string` | Returns the constant string `"NavigationRegion"`. |
|
||||
| `IsBusy` | `bool` | Getter and setter both throw `NotImplementedException`. Declared with `new` keyword. |
|
||||
| `IsDirty` | `bool` | Getter throws `NotImplementedException`. Declared with `new` keyword. |
|
||||
| `IsNavigationIncluded` | `bool` | Get/set property. Declared with `new` keyword. |
|
||||
|
||||
---
|
||||
|
||||
### Methods
|
||||
|
||||
```csharp
|
||||
public override void Initialize()
|
||||
```
|
||||
Overrides base `Initialize()`. Empty implementation.
|
||||
|
||||
```csharp
|
||||
public override void Initialize(object parameter)
|
||||
```
|
||||
Overrides base `Initialize(object)`. Casts `parameter` to `IBaseViewModel` and assigns it to the private `Parent` property.
|
||||
|
||||
---
|
||||
|
||||
### Events
|
||||
|
||||
```csharp
|
||||
public new event PropertyChangedEventHandler PropertyChanged
|
||||
```
|
||||
Event for property change notifications. Declared with `new` keyword, hiding the base class event.
|
||||
|
||||
---
|
||||
|
||||
## 3. Invariants
|
||||
|
||||
- `NavigationView` is assigned exactly once in the constructor and is never null thereafter (assumes constructor parameter is non-null).
|
||||
- `NotificationRequest` and `ConfirmationRequest` are instantiated in the constructor and remain non-null for the lifetime of the view model.
|
||||
- The `HeaderInfo` property always returns the literal string `"NavigationRegion"`.
|
||||
- `IsBusy` and `IsDirty` properties will always throw `NotImplementedException` when accessed.
|
||||
- The view model subscribes to `RaiseNotification` event during construction; the subscription persists for the object's lifetime.
|
||||
|
||||
---
|
||||
|
||||
## 4. Dependencies
|
||||
|
||||
### This Module Depends On:
|
||||
- `DTS.Common.Base` — Provides `BaseViewModel<T>` and `IBaseViewModel`
|
||||
- `DTS.Common.Events` — Provides `RaiseNotification` event and `NotificationContentEventArgs`
|
||||
- `DTS.Common.Interactivity` — Provides `InteractionRequest<T>`, `Notification`, `Confirmation`
|
||||
- `DTS.Common.Interface` — Provides `INavigationView`, `INavigationViewModel`
|
||||
- `Prism.Events` — Provides `IEventAggregator`
|
||||
- `Prism.Regions` — Provides `IRegionManager`
|
||||
- `Unity` — Provides `IUnityContainer`
|
||||
|
||||
### What Depends On This Module:
|
||||
- Cannot be determined from source alone. The `INavigationViewModel` interface suggests other modules may reference this view model through its interface abstraction.
|
||||
|
||||
---
|
||||
|
||||
## 5. Gotchas
|
||||
|
||||
1. **Multiple `new` keyword usages**: The properties `ConfirmationRequest`, `IsBusy`, `IsDirty`, `IsNavigationIncluded`, the `PropertyChanged` event, and the `OnPropertyChanged` method are all declared with `new`, hiding base class members. This indicates a design issue where the base class and derived class have conflicting member signatures. Callers casting to the base type will not see these overridden members.
|
||||
|
||||
2. **NotImplementedException on `IsBusy` and `IsDirty`**: Accessing either property will always throw. Code that attempts to bind to or check these properties will fail at runtime.
|
||||
|
||||
3. **Unused `ConfirmationRequest`**: The `ConfirmationRequest` property is instantiated but never raised anywhere in this class. It may be dead code or intended for future use.
|
||||
|
||||
4. **Concrete type cast in `ContextNavigationRegion`**: The property casts `INavigationView NavigationView` to the concrete type `NavigationView` to access `NavigationRegion.Content`. This breaks the interface abstraction and creates tight coupling to the concrete view implementation.
|
||||
|
||||
5. **`Parent` property never used**: The `Parent` property is set in `Initialize(object parameter)` but never referenced elsewhere in this file. Its purpose is unclear from source alone.
|
||||
|
||||
6. **Suppressed ReSharper warnings**: The file includes pragma-like comments suppressing warnings about unaccessed fields and unused auto-property accessors, suggesting known code quality issues that were silenced rather than resolved.
|
||||
Reference in New Issue
Block a user