Files

100 lines
5.3 KiB
Markdown
Raw Permalink Normal View History

2026-04-17 14:55:32 -04:00
---
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`.