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/SystemSettings/ISOSettings/Classes/ISOSettingsData.cs
generated_at: "2026-04-17T16:30:37.200396+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "7ab3b9f1af5090f3"
---
# Classes
### Purpose
This module defines the `ISOSettingsData` class, which serves as a data model for ISO (International Organization for Standardization) settings within the application. It manages configuration related to ISO code validation, display modes (ISO codes, user codes, channel names), and string builder visibility. It implements property change notification, making it suitable for data binding in a UI context.
### Public Interface
* `public class ISOSettingsData : DTS.Common.Base.BasePropertyChanged, IISOSettingsData`
* The primary class of this module. Inherits from `BasePropertyChanged` (likely providing `INotifyPropertyChanged` implementation) and implements `IISOSettingsData`.
* `public bool ValidateTestObjectAndPosition`
* **Property (get/set):** Controls whether TestObject and position ISO fields are validated during test setup validation. Defaults to `false`.
* `public bool UniqueISOCodesRequired`
* **Property (get/set):** Determines if unique ISO codes are required.
* `public bool UniqueISOCodesRequiredAndShowISOCodes`
* **Property (get):** Computed property returning `true` if `UniqueISOCodesRequired` is `true` AND `ShowISOCodes` is `true`.
* `public bool ShowISOCodes`
* **Property (get/set):** Controls the visibility of ISO codes. The setter manipulates the `ISOViewMode` enum to reflect the desired state. Setting to `true` may change `ISOViewMode` to `ISOAndUserCode` or `ISOOnly`. Setting to `false` may change it to `UserCodeOnly`. Raises property changed events for dependent properties.
* `public bool ShowUserCodes`
* **Property (get/set):** Controls the visibility of user codes. Similar logic to `ShowISOCodes`, it manipulates `ISOViewMode` based on the value being set.
* `public bool ShowISOStringBuilder`
* **Property (get/set):** Controls the visibility of an ISO string builder UI element.
* `public bool ShowChannelCodeLookupHelper`
* **Property (get/set):** Controls the visibility of a channel code lookup helper.
* `public bool UseISOCodeFilterMapping`
* **Property (get/set):** Controls whether ISO code filter mapping is used.
* `public bool ChannelNamesOnly`
* **Property (get/set):** If set to `true`, sets `ISOViewMode` to `ChannelNameOnly`. The setter does not handle the `false` case explicitly (commented as implicit).
* `public IsoViewMode ISOViewMode`
* **Property (get/set):** The underlying enum determining the current view mode. Raises property changed events for `ShowISOCodes`, `ShowUserCodes`, and `ChannelNamesOnly` when changed.
### Invariants
* `ISOViewMode` is the single source of truth for the display mode. `ShowISOCodes`, `ShowUserCodes`, and `ChannelNamesOnly` are projections of this state.
* Setting `ShowISOCodes` or `ShowUserCodes` to `true` or `false` triggers specific state transitions in `ISOViewMode` rather than acting as independent boolean flags.
* `UniqueISOCodesRequiredAndShowISOCodes` is strictly a logical AND of its two constituent properties.
### Dependencies
* **Depends on:**
* `DTS.Common.Enums` (for `IsoViewMode` enum).
* `DTS.Common.Interface` (for `IISOSettingsData` interface).
* `DTS.Common.Base` (inferred from `BasePropertyChanged`).
### Gotchas
* **State Transition Complexity:** The `ShowISOCodes` and `ShowUserCodes` setters contain non-trivial switch logic that modifies `ISOViewMode`. Developers might assume these are simple boolean flags, but setting them triggers side effects on the view mode.
* **Implicit False Logic:** The `ChannelNamesOnly` setter explicitly ignores the `false` case, relying on other setters to change the mode away from `ChannelNameOnly`.
* **Property Change Notification:** The `ShowISOCodes` setter manually raises `OnPropertyChanged` for several other properties (`ShowISOStringBuilder`, `UniqueISOCodesRequired`, etc.), creating hidden coupling.

View File

@@ -0,0 +1,71 @@
---
source_files:
- DataPRO/Modules/SystemSettings/ISOSettings/Model/Enums.cs
- DataPRO/Modules/SystemSettings/ISOSettings/Model/ISOSettingsModel.cs
generated_at: "2026-04-17T15:57:55.902760+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "35e21e8080149c8b"
---
# ISOSettings Module Documentation
## 1. Purpose
The ISOSettings module manages configuration related to ISO (International Organization for Standardization) code support within the DataPRO system. It provides a model layer for persisting and retrieving ISO-related settings—such as display modes, validation rules, and support levels—via a database-backed settings store. The module also orchestrates side effects when critical validation settings change, triggering re-evaluation of test completeness across the system.
---
## 2. Public Interface
### Enum: `Keys`
**Namespace:** `ISOSettings`
Defines setting keys used for database storage lookup.
| Member | Description (inferred from usage) |
|--------|-----------------------------------|
| `ISOSupportAllowTransitional` | Key for transitional ISO support setting |
| `ISOSupport_Allow_NonISO` | Key for allowing non-ISO codes |
| `ShowISOCodes` | Key for ISO code visibility |
| `ShowUserCodes` | Key for user code visibility |
| `UseUserCodes` | Key for user code usage |
| `IsoSupportLevel` | Key for ISO support level |
| `UniqueISOCodesRequired` | Key for unique ISO code requirement |
| `ShowISOStringBuilder` | Key for ISO string builder visibility |
| `ShowChannelCodeLookupHelper` | Key for channel code lookup helper visibility |
| `UseISOCodeFilterMapping` | Key for ISO code filter mapping usage |
| `ValidateTestPositionAndTestObject` | Key for test object/position validation |
---
### Class: `ISOSettingsModel`
**Namespace:** `ISOSettings.Model`
**Implements:** `IISOSettingsModel`
#### Constructor
```csharp
public ISOSettingsModel(IEventAggregator eventAggregator)
```
Initializes the model with an event aggregator for publishing notifications.
#### Methods
```csharp
public IISOSettingsData LoadData()
```
Returns a new `ISOSettingsData` instance populated with current settings values.
```csharp
public void SaveData(IISOSettingsData data)
```
Persists settings from the provided `ISOSettingsData` instance. If `UniqueISOCodesRequired` or `ValidateTestObjectAndPosition` values change, triggers `MarkAllTestsDirty()`. Sets `IsSaved` to `true` on success; publishes a `RaiseNotification` event on exception.
```csharp
public void OnPropertyChanged(string propertyName)
```
**Note:** Empty implementation—does not raise `PropertyChanged` event.
#### Properties
| Property | Type | Default |

View File

@@ -0,0 +1,130 @@
---
source_files:
- DataPRO/Modules/SystemSettings/ISOSettings/Properties/AssemblyInfo.cs
- DataPRO/Modules/SystemSettings/ISOSettings/Properties/Annotations.cs
generated_at: "2026-04-17T15:58:16.438375+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "6bc3500d0b0ec694"
---
# ISOSettings Module Documentation
## 1. Purpose
This module provides assembly metadata and JetBrains ReSharper external annotations for the `ISOSettings` component within the `DataPRO/Modules/SystemSettings` subsystem. The `AssemblyInfo.cs` file defines standard .NET assembly identity information (version 1.0.0.0, copyright 2016), while `Annotations.cs` supplies static analysis attributes that enable enhanced IDE inspections for nullability, contracts, MVC/Razor development, and code quality warnings. These annotations are design-time constructs and have no runtime behavior.
---
## 2. Public Interface
### AssemblyInfo.cs (Assembly-Level Attributes)
| Attribute | Value |
|-----------|-------|
| `AssemblyTitle` | `"ISOSettings"` |
| `AssemblyDescription` | `""` (empty) |
| `AssemblyConfiguration` | `""` (empty) |
| `AssemblyCompany` | `""` (empty) |
| `AssemblyProduct` | `"ISOSettings"` |
| `AssemblyCopyright` | `"Copyright © 2016"` |
| `AssemblyTrademark` | `""` (empty) |
| `AssemblyCulture` | `""` (empty) |
| `ComVisible` | `false` |
| `Guid` | `"7446722e-490d-4f6a-beaf-907947e576d5"` |
| `AssemblyVersion` | `"1.0.0.0"` |
| `AssemblyFileVersion` | `"1.0.0.0"` |
### Annotations.cs (Namespace: `ISOSettings.Annotations`)
This file defines **70+ attribute classes** for ReSharper static analysis. Key categories include:
#### Nullability Attributes
- **`CanBeNullAttribute`** — Marks elements that may be `null`; consumers must check before use.
- **`NotNullAttribute`** — Marks elements that should never be `null`.
- **`ItemNotNullAttribute`** — For `IEnumerable`, `Task`, or `Lazy<T>`: indicates items/Result/Value are never null.
- **`ItemCanBeNullAttribute`** — For `IEnumerable`, `Task`, or `Lazy<T>`: indicates items/Result/Value may be null.
- **`ImplicitNotNullAttribute`** — Implicitly applies `[NotNull]`/`[ItemNotNull]` to all members in a scope.
#### Contract & Method Behavior Attributes
- **`ContractAnnotationAttribute`** — Describes input/output dependencies (e.g., `"null => null; notnull => notnull"`).
- **`PureAttribute`** — Marks methods with no observable state changes.
- **`MustUseReturnValueAttribute`** — Requires the return value to be used.
- **`AssertionMethodAttribute`** / **`AssertionConditionAttribute`** — Marks assertion methods and their condition parameters.
- **`TerminatesProgramAttribute`** — *[Obsolete: use `ContractAnnotation("=> halt")`]* Marks methods that unconditionally halt execution.
- **`InstantHandleAttribute`** — Indicates a parameter is fully handled during method execution.
- **`LinqTunnelAttribute`** — Marks pure LINQ methods with postponed enumeration.
- **`NoEnumerationAttribute`** — Indicates an `IEnumerable` parameter is not enumerated.
#### String & Format Attributes
- **`StringFormatMethodAttribute`** — Marks methods that use format strings; constructor takes `formatParameterName`.
- **`RegexPatternAttribute`** — Marks a parameter as a regular expression pattern.
#### Property Change Notification
- **`NotifyPropertyChangedInvocatorAttribute`** — Marks methods used to raise `INotifyPropertyChanged` events.
#### Implicit Usage Tracking
- **`UsedImplicitlyAttribute`** — Marks symbols used via reflection or external code.
- **`MeansImplicitUseAttribute`** — Applied to attributes to prevent "unused" warnings on marked symbols.
- **`PublicAPIAttribute`** — Marks public API that should not be removed.
#### ASP.NET MVC Attributes
- `AspMvcActionAttribute`, `AspMvcAreaAttribute`, `AspMvcControllerAttribute`, `AspMvcMasterAttribute`, `AspMvcModelTypeAttribute`, `AspMvcPartialViewAttribute`, `AspMvcViewAttribute`, `AspMvcViewComponentAttribute`, `AspMvcViewComponentViewAttribute`, `AspMvcActionSelectorAttribute`, `AspMvcDisplayTemplateAttribute`, `AspMvcEditorTemplateAttribute`, `AspMvcTemplateAttribute`, `AspMvcSuppressViewErrorAttribute`
- Location format attributes: `AspMvcAreaMasterLocationFormatAttribute`, `AspMvcAreaPartialViewLocationFormatAttribute`, `AspMvcAreaViewLocationFormatAttribute`, `AspMvcMasterLocationFormatAttribute`, `AspMvcPartialViewLocationFormatAttribute`, `AspMvcViewLocationFormatAttribute`
#### Razor Attributes
- `RazorSectionAttribute`, `RazorImportNamespaceAttribute`, `RazorInjectionAttribute`, `RazorDirectiveAttribute`, `RazorHelperCommonAttribute`, `RazorLayoutAttribute`, `RazorWriteLiteralMethodAttribute`, `RazorWriteMethodAttribute`, `RazorWriteMethodParameterAttribute`
#### Collection Access
- **`CollectionAccessAttribute`** — Indicates how a method affects collection content. Uses `CollectionAccessType` enum (`None`, `Read`, `ModifyExistingContent`, `UpdatedContent`).
#### XAML Attributes
- `XamlItemsControlAttribute`, `XamlItemBindingOfItemsControlAttribute`
#### Other Attributes
- `LocalizationRequiredAttribute`, `CannotApplyEqualityOperatorAttribute`, `BaseTypeRequiredAttribute`, `ValueProviderAttribute`, `InvokerParameterNameAttribute`, `PathReferenceAttribute`, `SourceTemplateAttribute`, `MacroAttribute`, `ProvidesContextAttribute`, `HtmlElementAttributesAttribute`, `HtmlAttributeValueAttribute`, `NoReorder`
- ASP.NET Web Forms: `AspChildControlTypeAttribute`, `AspDataFieldAttribute`, `AspDataFieldsAttribute`, `AspMethodPropertyAttribute`, `AspRequiredAttributeAttribute`, `AspTypePropertyAttribute`
#### Supporting Enums
- **`ImplicitUseKindFlags`** — Flags: `Default`, `Access`, `Assign`, `InstantiatedWithFixedConstructorSignature`, `InstantiatedNoFixedConstructorSignature`
- **`ImplicitUseTargetFlags`** — Flags: `Default`, `Itself`, `Members`, `WithMembers`
- **`CollectionAccessType`** — Flags: `None`, `Read`, `ModifyExistingContent`, `UpdatedContent`
- **`AssertionConditionType`** — `IS_TRUE`, `IS_FALSE`, `IS_NULL`, `IS_NOT_NULL`
---
## 3. Invariants
- **Assembly Identity**: The assembly `ISOSettings` is identified by GUID `7446722e-490d-4f6a-beaf-907947e576d5` and version `1.0.0.0`.
- **COM Visibility**: All types in this assembly are COM-invisible (`ComVisible(false)`).
- **Annotation Namespace**: All annotation attributes reside in `ISOSettings.Annotations` namespace.
- **Design-Time Only**: Attributes in `Annotations.cs` are metadata-only; they do not affect runtime behavior.
- **License**: `Annotations.cs` is MIT-licensed from JetBrains (copyright 2016).
- **Compiler Warnings**: The file disables warning 1591 (missing XML documentation) and suppresses several ReSharper inspections at file level.
---
## 4. Dependencies
### Imports (what this module depends on)
- `System.Reflection` — For assembly metadata attributes.
- `System.Runtime.CompilerServices` — For compiler-related attributes.
- `System.Runtime.InteropServices` — For COM interop attributes (`ComVisible`, `Guid`).
- `System` — Base types for annotation attributes.
### Consumers (what depends on this module)
- **Unclear from source alone** — The `ISOSettings` assembly appears to be part of a larger `DataPRO/Modules/SystemSettings` subsystem, but no consuming code is present in these files. The annotations suggest integration with ASP.NET MVC, Razor, and XAML-based components.
---
## 5. Gotchas
1. **Empty Metadata Fields**: `AssemblyDescription`, `AssemblyConfiguration`, `AssemblyCompany`, `AssemblyTrademark`, and `AssemblyCulture` are all empty strings. This may indicate incomplete assembly configuration or placeholder values.
2. **Obsolete Attribute**: `TerminatesProgramAttribute` is marked `[Obsolete("Use [ContractAnnotation('=> halt')] instead")]`. New code should use `ContractAnnotationAttribute`.
3. **Version Stagnation**: Both `AssemblyVersion` and `AssemblyFileVersion` are `1.0.0.0`, suggesting this may be an initial/unmaintained version or the version is managed elsewhere (e.g., CI/CD).
4. **Third-Party Annotations**: The `Annotations.cs` file is a standard JetBrains annotations file. It should be kept in sync with ReSharper versions if updated annotations are needed.
5. **Warning Suppressions**: The annotations file suppresses warning 1591 and multiple ReSharper inspections globally via `#pragma warning disable` and `// ReSharper disable` directives. This may hide legitimate issues in this file.

View File

@@ -0,0 +1,48 @@
---
source_files:
- DataPRO/Modules/SystemSettings/ISOSettings/Resources/TranslateExtension.cs
- DataPRO/Modules/SystemSettings/ISOSettings/Resources/StringResources.Designer.cs
generated_at: "2026-04-17T15:57:33.768149+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "19788904cc250d5c"
---
# Documentation: ISOSettings Resources Module
## 1. Purpose
This module provides localization/internationalization infrastructure for the ISOSettings component within the SystemSettings module. It consists of a WPF XAML markup extension (`TranslateExtension`) that enables declarative string resource lookups in XAML bindings, and a strongly-typed resource accessor class (`StringResources`) that wraps a `.resx` resource file containing UI strings related to ISO configuration options. The module exists to centralize localizable strings for ISO-related settings, supporting potential multi-language deployments.
---
## 2. Public Interface
### `TranslateExtension` (class)
**Namespace:** `ISOSettings.Resources`
**Inheritance:** `System.Windows.Markup.MarkupExtension`
**Attribute:** `[MarkupExtensionReturnType(typeof(string))]`
A XAML markup extension that resolves resource keys to localized strings at runtime.
| Member | Signature | Description |
|--------|-----------|-------------|
| Constructor | `TranslateExtension(string key)` | Initializes the extension with the resource key to look up. Stores the key in a private readonly field `_key`. |
| `ProvideValue` | `public override object ProvideValue(IServiceProvider serviceProvider)` | Returns the localized string for `_key` from `StringResources.ResourceManager`. Returns `NotFound` constant if `_key` is null or empty. Returns `NotFound + " " + _key` if the resource key does not exist in the resource file. |
**Constants:**
- `private const string NotFound = "#stringnotfound#"` — Fallback value returned when a resource key is invalid or missing.
---
### `StringResources` (class)
**Namespace:** `ISOSettings.Resources`
**Visibility:** `internal`
**Attributes:** `[GeneratedCode]`, `[DebuggerNonUserCode]`, `[CompilerGenerated]`
An auto-generated strongly-typed resource class providing access to localized strings. **This class is auto-generated and should not be manually edited.**
| Member | Signature | Description |
|--------|-----------|-------------|
| `ResourceManager` | `internal static global::System.Resources.ResourceManager ResourceManager { get; }` | Returns a cached `ResourceManager` instance for the `ISOSettings.Resources.StringResources` resource bundle. Lazily initialized on first access. |
| `Culture`

View File

@@ -0,0 +1,36 @@
---
source_files:
- DataPRO/Modules/SystemSettings/ISOSettings/View/ISOSettingsView.xaml.cs
generated_at: "2026-04-17T16:15:27.064420+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "a4891084708867aa"
---
# View
### Purpose
This module provides the XAML code-behind for the ISO Settings view in the System Settings module. It serves as a passive view component in an MVVM architecture, implementing the `IISOSettingsView` interface to enable view-model binding and dependency injection. The view acts as a UI container for ISO-related configuration options within the larger DataPRO application.
### Public Interface
**`ISOSettingsView` (class)**
- Signature: `public partial class ISOSettingsView : IISOSettingsView`
- Constructor: `public ISOSettingsView()` - Initializes the component by calling `InitializeComponent()`, which loads the associated XAML layout.
- Implements `IISOSettingsView` interface (defined externally in `DTS.Common.Interface`).
### Invariants
- The view must be paired with a corresponding XAML file (`ISOSettingsView.xaml`) that defines the visual layout.
- The view is a partial class, meaning its complete definition spans both the code-behind and XAML-generated code.
### Dependencies
- **Depends on:**
- `System.ComponentModel` (namespace imported but not directly used in visible code)
- `DTS.Common.Interface` (provides `IISOSettingsView` interface)
- **Depended on by:** Not determinable from source alone; likely consumed by a ViewModel or module registration logic.
### Gotchas
- The `System.ComponentModel` using directive is imported but not visibly used in the code-behind. This may be residual or used by the XAML-generated partial class.
- No DataContext assignment is present in the code-behind; this is likely handled externally by a ViewModel or through XAML binding.
---

View File

@@ -0,0 +1,41 @@
---
source_files:
- DataPRO/Modules/SystemSettings/ISOSettings/ViewModel/ISOSettingsViewModel.cs
generated_at: "2026-04-17T16:15:04.735316+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "8db3a8520eb6d4a3"
---
# ViewModel
### Purpose
This module provides the ViewModel for ISO Settings management, implementing the MVVM pattern with Prism framework support. It coordinates between the view, model, and application infrastructure (event aggregation, region management, dependency injection) to handle ISO code configuration, user notifications, and data persistence.
### Public Interface
**`ISOSettingsViewModel`** (class) - ViewModel for ISO settings management
- Constructor: `public ISOSettingsViewModel(IISOSettingsView view, IRegionManager regionManager, IEventAggregator eventAggregator, IUnityContainer unityContainer)`
**Properties:**
- `View` (`IISOSettingsView`) - Gets/sets the associated view
- `Model` (`IISOSettingsModel`) - Gets/sets the data model
- `NotificationRequest` (`InteractionRequest<Notification>`) - Request object for showing notifications
- `ConfirmationRequest` (`InteractionRequest<Confirmation>`) - Request object for showing confirmations
- `ISOData` (`IISOSettingsData`) - Gets/sets the ISO settings data
- `IsDirty` (`bool`) - Indicates if data has unsaved changes (private setter)
- `IsBusy` (`bool`) - Indicates busy state for UI indicators
- `IsMenuIncluded` (`bool`) - Indicates if menu is included
- `IsNavigationIncluded` (`bool`) - Indicates if navigation is included
- `HeaderInfo` (`string`) - Returns "MainRegion" (read-only)
**Methods:**
- `void Cleanup()` - Empty implementation
- `Task CleanupAsync()` - Returns `Task.CompletedTask`
- `void Initialize()` - Empty implementation
- `void Initialize(object parameter)` - Empty implementation
- `void Initialize(object parameter, object model)` - Empty implementation
- `Task InitializeAsync()` - Returns `Task.CompletedTask`
- `Task InitializeAsync(object parameter)` - Returns `Task.CompletedTask`
- `void