--- source_files: - Common/DTS.Common/Events/GroupTemplates/CustomChannels/CustomChannelExportFileSetEvent.cs - Common/DTS.Common/Events/GroupTemplates/CustomChannels/CustomChannelImportEvent.cs generated_at: "2026-04-17T16:37:50.415537+00:00" model: "zai-org/GLM-5-FP8" schema_version: 1 sha256: "0051299d71a30734" --- # Documentation: Custom Channel Events ## 1. Purpose This module provides event definitions for coordinating custom channel import and export operations within the group templates subsystem. It enables loosely-coupled communication between components regarding custom channel file handling, allowing the application to manage its busy state during exports and track import completion status. These events follow the Prism Event Aggregator pattern for pub/sub messaging. --- ## 2. Public Interface ### `CustomChannelExportFileSetEvent` **Signature:** `public class CustomChannelExportFileSetEvent : PubSubEvent` An event that signals the application should change its busy/available state. The payload is a `string` value, though the semantic meaning of the string content is not specified in the source. --- ### `CustomChannelImportEvent` **Signature:** `public class CustomChannelImportEvent : PubSubEvent` An event that communicates custom channel import status changes. Publishers emit `CustomChannelImportEventArgs` to inform subscribers of import progress. --- ### `CustomChannelImportEventArgs` **Signature:** `public class CustomChannelImportEventArgs` A payload class carrying import status information. | Member | Type | Description | |--------|------|-------------| | `Status` (nested enum) | `enum` | Contains value: `Done` | | `ImportStatus` | `Status` | Read-only property containing the import status | | `CustomChannelImportEventArgs(Status status)` | Constructor | Initializes the instance with a status value | --- ## 3. Invariants - `CustomChannelImportEventArgs.ImportStatus` is immutable after construction (read-only property with no setter). - `CustomChannelImportEventArgs.Status` enum currently defines only the `Done` value; no other statuses are available. - Both event classes inherit from `PubSubEvent` and are intended to be used with Prism's `IEventAggregator`. - The namespace `DTS.Common.Events.GroupTemplates.CustomChannels` groups these events under the custom channels feature area. --- ## 4. Dependencies **This module depends on:** - `Prism.Events` — Provides the `PubSubEvent` base class for event aggregation. **Consumers (inferred):** - Any component that publishes or subscribes to custom channel import/export events within the group templates subsystem. Specific consumers are not identifiable from these source files alone. --- ## 5. Gotchas - **Ambiguous string payload:** `CustomChannelExportFileSetEvent` uses a `string` payload, but the source does not define what the string represents (e.g., a file path, a message, an identifier). The XML comment mentions "mark itself busy or available," but how the string value maps to busy/available state is unclear from source alone. - **Limited status enum:** `CustomChannelImportEventArgs.Status` only defines `Done`. There are no intermediate states (e.g., `Started`, `InProgress`) or error states (e.g., `Failed`, `Cancelled`).