Files

58 lines
3.5 KiB
Markdown
Raw Permalink Normal View History

2026-04-17 14:55:32 -04:00
---
source_files:
- DataPRO/Modules/SystemSettings/ISOSettings/ISOSettingsModule.cs
generated_at: "2026-04-17T16:30:25.201419+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "7783de7681880eb0"
---
# ISOSettings
### Purpose
This module provides ISO Settings functionality within the DTS application framework. It is a Prism module responsible for registering its associated View and ViewModel with the Unity dependency injection container, enabling the application to display and manage ISO-related configuration settings. The module also exposes metadata (image, name, group) for display on the main screen as an available component.
### Public Interface
**ISOSettingsModule**
- `ISOSettingsModule(IUnityContainer unityContainer)` — Constructor that receives the Unity container via dependency injection.
- `void Initialize()` — Registers `IISOSettingsView` to `ISOSettingsView` and `IISOSettingsViewModel` to `ISOSettingsViewModel` with the Unity container.
- `void OnInitialized(IContainerProvider containerProvider)` — Empty implementation; no initialization logic executed.
- `void RegisterTypes(IContainerRegistry containerRegistry)` — Calls `Initialize()` to perform type registrations.
**ISOSettingsImageAttribute**
- `ISOSettingsImageAttribute()` — Default constructor.
- `ISOSettingsImageAttribute(string s)` — Constructor accepting a string parameter (unused).
- `override eAssemblyRegion AssemblyRegion` — Throws `NotImplementedException`.
- `override BitmapImage AssemblyImage` — Returns the image retrieved via `AssemblyInfo.GetImage(AssemblyNames.IsoSettings.ToString())`.
- `override string AssemblyName` — Returns `AssemblyNames.IsoSettings.ToString()`.
- `override string AssemblyGroup` — Returns `eAssemblyGroups.Administrative.ToString()`.
- `override Type GetAttributeType()` — Returns `typeof(ImageAttribute)`.
- `override BitmapImage GetAssemblyImage()` — Returns `AssemblyImage`.
- `override string GetAssemblyName()` — Returns `AssemblyName`.
- `override eAssemblyRegion GetAssemblyRegion()` — Throws `NotImplementedException`.
- `override string GetAssemblyGroup()` — Returns `AssemblyGroup`.
### Invariants
- The module must be instantiated with a non-null `IUnityContainer` reference.
- View and ViewModel types are registered as transient (not singleton) via `RegisterType`.
- `ISOSettingsImageAttribute` is decorated with `[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = false)]`, ensuring only one instance per assembly.
### Dependencies
**Depends on:**
- `DTS.Common` — Provides `AssemblyInfo`, `AssemblyNames`, `eAssemblyGroups`.
- `DTS.Common.Interface` — Provides `ImageAttribute`, `eAssemblyRegion`, `IISOSettingsView`, `IISOSettingsViewModel` (inferred).
- `Prism.Ioc` — Provides `IContainerProvider`, `IContainerRegistry`.
- `Prism.Modularity` — Provides `IModule`, `ModuleAttribute`.
- `Unity` — Provides `IUnityContainer`.
- `System.ComponentModel.Composition` — Provides `ExportAttribute`.
- `System.Windows.Media.Imaging` — Provides `BitmapImage`.
**Depended on by:** Not determinable from source alone.
### Gotchas
- `AssemblyRegion` property and `GetAssemblyRegion()` method throw `NotImplementedException`. Calling these will crash the application.
- The `ISOSettingsImageAttribute(string s)` constructor ignores its string parameter; it retrieves the image identically to the default constructor.
- `OnInitialized` is empty, which may indicate incomplete initialization logic or intentional deferral to `RegisterTypes`.
---