--- source_files: - Common/DTS.CommonCore/Interface/SystemSettings/ISOSettings/IisoSettingsView.cs - Common/DTS.CommonCore/Interface/SystemSettings/ISOSettings/IISOSettingsModel.cs - Common/DTS.CommonCore/Interface/SystemSettings/ISOSettings/IISOSettingsViewModel.cs - Common/DTS.CommonCore/Interface/SystemSettings/ISOSettings/IISOSettingsData.cs generated_at: "2026-04-16T12:20:35.290001+00:00" model: "zai-org/GLM-5-FP8" schema_version: 1 sha256: "7b8cfe6060429ed5" --- # ISO Settings Module Documentation ## 1. Purpose This module defines the contract for ISO (International Organization for Standardization) settings management within the DTS system. It establishes a Model-View-ViewModel (MVVM) architecture through four interfaces that govern how ISO-related configuration data is stored, displayed, and manipulated. The module provides a decoupled interface layer allowing implementations to vary without affecting dependent components. --- ## 2. Public Interface ### `IISOSettingsView` **Namespace:** `DTS.Common.Interface` **Inherits:** `IBaseView` A marker interface representing the view component in the MVVM pattern. Contains no members beyond those inherited from `IBaseView`. --- ### `IISOSettingsModel` **Namespace:** `DTS.Common.Interface` **Inherits:** `IBaseModel` Defines the data persistence contract for ISO settings. | Method | Signature | Description | |--------|-----------|-------------| | `SaveData` | `void SaveData(IISOSettingsData data)` | Persists the provided ISO settings data. | | `LoadData` | `IISOSettingsData LoadData()` | Retrieves and returns the stored ISO settings data. | --- ### `IISOSettingsViewModel` **Namespace:** `DTS.Common.Interface` **Inherits:** `IBaseViewModel` Defines the coordinator between view and model for ISO settings. | Property | Type | Access | Description | |----------|------|--------|-------------| | `View` | `IISOSettingsView` | get/set | Reference to the associated view instance. | | `ISOData` | `IISOSettingsData` | get/set | The ISO settings data being managed. | | `Model` | `IISOSettingsModel` | get/set | Reference to the model for data operations. | --- ### `IISOSettingsData` **Namespace:** `DTS.Common.Interface` **Inherits:** `IBaseClass` Defines the data structure for ISO configuration settings. | Property | Type | Access | Description | |----------|------|--------|-------------| | `UniqueISOCodesRequired` | `bool` | get/set | Controls whether ISO codes must be unique. | | `ISOViewMode` | `IsoViewMode` | get/set | Determines the view mode for ISO display. | | `ShowISOStringBuilder` | `bool` | get/set | Controls visibility of ISO string builder UI. | | `ShowChannelCodeLookupHelper` | `bool` | get/set | Controls visibility of channel code lookup helper. | | `UseISOCodeFilterMapping` | `bool` | get/set | Enables/disables ISO code filter mapping. | | `ShowISOCodes` | `bool` | get only | Indicates whether ISO codes should be displayed. | | `ShowUserCodes` | `bool` | get only | Indicates whether user codes should be displayed. | | `ChannelNamesOnly` | `bool` | get only | Indicates whether only channel names are shown. | --- ## 3. Invariants - **Inheritance Hierarchy:** All interfaces in this module inherit from base interfaces in `DTS.Common.Base` (`IBaseView`, `IBaseModel`, `IBaseViewModel`, `IBaseClass`). Implementations must satisfy these base contracts. - **Read-only Properties:** The properties `ShowISOCodes`, `ShowUserCodes`, and `ChannelNamesOnly` on `IISOSettingsData` are read-only. Their values must be derived from other state (likely computed from `ISOViewMode` or other properties), but the derivation logic is not specified in these interfaces. - **ViewModel Composition:** `IISOSettingsViewModel` requires non-null references to `View`, `Model`, and `ISOData` for proper operation (implied by the architecture, though not enforced at interface level). --- ## 4. Dependencies ### This module depends on: - **`DTS.Common.Base`** — Provides base interfaces (`IBaseView`, `IBaseModel`, `IBaseViewModel`, `IBaseClass`) that all ISO settings interfaces extend. - **`DTS.Common.Enums`** — Provides the `IsoViewMode` enum used in `IISOSettingsData.ISOViewMode`. ### What depends on this module: - **Unclear from source alone.** Concrete implementations of these interfaces and any consumers of `IISOSettingsView`, `IISOSettingsModel`, `IISOSettingsViewModel`, or `IISOSettingsData` are not present in the provided files. --- ## 5. Gotchas - **Naming Inconsistency:** The file name `IisoSettingsView.cs` uses lowercase "iso" while the interface name is `IISOSettingsView` (uppercase). The file includes a `// ReSharper disable InconsistentNaming` directive in `IISOSettingsViewModel.cs`, suggesting naming conventions around "ISO" have been a point of friction. - **Read-only Property Derivation:** The three read-only properties on `IISOSettingsData` (`ShowISOCodes`, `ShowUserCodes`, `ChannelNamesOnly`) have no visible implementation. Their relationship to `ISOViewMode` or other writable properties is not documented in these interfaces—implementers must consult concrete implementations or other documentation. - **Empty View Interface:** `IISOSettingsView` defines no members beyond its base interface. This may indicate either a placeholder for future expansion or that all view behavior is defined in `IBaseView`.