--- source_files: - Common/DTS.Common/Events/DASFactory/DASConfigurationEvent.cs generated_at: "2026-04-16T03:25:13.824064+00:00" model: "Qwen/Qwen3-Coder-Next-FP8" schema_version: 1 sha256: "e69018b59746b653" --- # DASFactory ### 1. **Purpose** This module defines the `DASConfigurationEvent`, a Prism-based pub/sub event used to notify subscribers about DAS (Device Abstraction Service) configuration state changes—specifically, to signal when configuration data is blank or missing. It supports emergency download scenarios (per issue #17872) where DAS must fall back to XML configuration files on disk when filestore entries are blank, ensuring robustness during recovery operations. ### 2. **Public Interface** - **`DASConfigurationEvent`** - *Type*: `class` (inherits from `PubSubEvent`) - *Behavior*: A Prism `PubSubEvent` payload for publishing and subscribing to configuration-related notifications. The event carries an argument of type `IDASConfigurationArg`, which encapsulates the configuration state (e.g., blank/missing indicators). Subscribers receive this event when DAS configuration issues occur. ### 3. **Invariants** - The event **only publishes** when configuration data is blank or missing; it is not used for normal (valid) configuration updates. - The payload type is strictly `IDASConfigurationArg`; no other argument types are supported. - The event inherits Prism’s `PubSubEvent` semantics: - Subscriptions are weak-referenced by default (to prevent memory leaks). - Events are published asynchronously unless explicitly configured otherwise via Prism’s `ThreadOption`. ### 4. **Dependencies** - **Depends on**: - `Prism.Events` (for `PubSubEvent` base class). - `DTS.Common.Interface.DASFactory.IDASConfigurationArg` (the payload interface defining the contract for configuration arguments). - **Used by**: - Components in the DAS factory or configuration subsystem that detect blank/missing configurations (e.g., during emergency download workflows). - Subscribers (e.g., UI or service layers) that need to react to configuration failures (e.g., by prompting user action or switching to fallback XML files). ### 5. **Gotchas** - The event is **not intended for general configuration changes**—only for *blank/missing* states. Publishing it for valid configurations would violate its semantic contract. - The actual structure and contents of `IDASConfigurationArg` are defined externally (in `DTS.Common.Interface.DASFactory`); this file does not specify them, so behavior details (e.g., which properties indicate "blank/missing") are not inferable here. - No explicit error codes or metadata are included in the event itself; subscribers must rely on `IDASConfigurationArg`’s implementation for diagnostic details. - None identified from source alone.