Files
2026-04-17 14:55:32 -04:00

5.3 KiB

source_files, generated_at, model, schema_version, sha256
source_files generated_at model schema_version sha256
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
2026-04-16T12:20:35.290001+00:00 zai-org/GLM-5-FP8 1 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.