This commit is contained in:
2026-04-17 14:55:32 -04:00
commit bc3ac1d4c9
18017 changed files with 4371742 additions and 0 deletions

View File

@@ -0,0 +1,69 @@
---
source_files:
- Common/DTS.CommonCore/Events/GroupTemplates/CustomChannels/CustomChannelExportFileSetEvent.cs
- Common/DTS.CommonCore/Events/GroupTemplates/CustomChannels/CustomChannelImportEvent.cs
generated_at: "2026-04-17T16:37:05.967278+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "a3c4db7c7bb964f4"
---
# Documentation: Custom Channel Events
## 1. Purpose
This module provides event definitions for coordinating custom channel import and export operations within a group templates feature. It leverages the Prism Event Aggregation pattern to enable loosely-coupled communication between application components, allowing publishers and subscribers to interact without direct references. The events facilitate signaling export file set operations and import status notifications.
---
## 2. Public Interface
### `CustomChannelExportFileSetEvent`
**Signature:** `public class CustomChannelExportFileSetEvent : CompositePresentationEvent<string>`
An event that publishes a `string` payload. According to the source comments, it informs the application that it should mark itself busy or available.
### `CustomChannelImportEvent`
**Signature:** `public class CustomChannelImportEvent : CompositePresentationEvent<CustomChannelImportEventArgs>`
An event that publishes `CustomChannelImportEventArgs` to inform subscribers of custom channel import status.
### `CustomChannelImportEventArgs`
**Signature:** `public class CustomChannelImportEventArgs`
A payload class containing import status information.
| Member | Type | Description |
|--------|------|-------------|
| `Status` | `enum` | Nested enum with a single value: `Done` |
| `ImportStatus` | `Status` | Read-only property containing the import status |
**Constructor:** `CustomChannelImportEventArgs(Status status)` — Initializes the instance with the specified status.
---
## 3. Invariants
- `CustomChannelImportEventArgs.ImportStatus` is immutable after construction (read-only property with no setter).
- `CustomChannelImportEventArgs.Status` enum currently defines only the `Done` value; any other status values are undefined.
- Both event classes inherit from `CompositePresentationEvent<T>` from Prism, implying they must be used with an `IEventAggregator` instance.
---
## 4. Dependencies
### This module depends on:
- `Microsoft.Practices.Prism.Events` — Specifically the `CompositePresentationEvent<T>` base class for event aggregation.
### What depends on this module:
- **Cannot be determined from source alone.** Consumers would be any component that publishes or subscribes to these events via an `IEventAggregator`.
---
## 5. Gotchas
1. **Ambiguous string payload:** `CustomChannelExportFileSetEvent` uses a `string` payload, but the source does not define what this string represents (e.g., a file path, identifier, or status message). The comment mentions "mark itself busy or available," but the relationship between the string value and busy/available state is unclear.
2. **Incomplete status enum:** `CustomChannelImportEventArgs.Status` only defines `Done`. There are no intermediate states (e.g., `Started`, `InProgress`, `Failed`) visible in the source, which may indicate either a simplified implementation or missing status values.
3. **No null validation:** `CustomChannelImportEventArgs` does not validate the

View File

@@ -0,0 +1,48 @@
---
source_files:
- Common/DTS.CommonCore/Events/GroupTemplates/GroupTemplateList/GroupTemplateListGroupDoubleClickEvent.cs
- Common/DTS.CommonCore/Events/GroupTemplates/GroupTemplateList/GroupTemplateListGroupTemplateSelectedEvent.cs
generated_at: "2026-04-17T16:37:06.219792+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "e80d59b89c12e842"
---
# Documentation: GroupTemplateList Events
## 1. Purpose
This module defines two event types used within the GroupTemplateList feature, implementing the Prism event aggregation pattern. These events enable loosely-coupled publish/subscribe communication between components when user interactions occur with group templates—specifically when a template is selected or double-clicked. Both events inherit from Prism's `CompositePresentationEvent<T>` base class, allowing them to be transmitted through an event aggregator.
## 2. Public Interface
### `GroupTemplateListGroupDoubleClickEvent`
- **Signature:** `public class GroupTemplateListGroupDoubleClickEvent : CompositePresentationEvent<string>`
- **Behavior:** Raised when a group template is double-clicked. Carries a single `string` payload (presumably a template identifier or name).
### `GroupTemplateListGroupTemplateSelectedEvent`
- **Signature:** `public class GroupTemplateListGroupTemplateSelectedEvent : CompositePresentationEvent<string[]>`
- **Behavior:** Raised when a group template is selected. Carries a `string[]` array payload (contents and structure of the array are not documented in source).
## 3. Invariants
- Both event classes are sealed by the compiler (no explicit inheritance modifiers, but they have no derived classes in this module).
- `GroupTemplateListGroupDoubleClickEvent` always carries a `string` payload, never null at the point of subscription dispatch (enforced by Prism framework).
- `GroupTemplateListGroupTemplateSelectedEvent` always carries a `string[]` payload, never null at the point of subscription dispatch (enforced by Prism framework).
- Both events must be published and subscribed through a Prism `IEventAggregator` instance.
## 4. Dependencies
**This module depends on:**
- `Microsoft.Practices.Prism.Events` — Provides `CompositePresentationEvent<T>` base class for event aggregation.
**Consumers (inferred):**
- Unknown from source alone. These events are published by GroupTemplateList UI components and subscribed to by handlers responding to template selection/double-click actions.
## 5. Gotchas
1. **Documentation copy-paste error:** The XML summary in `GroupTemplateListGroupDoubleClickEvent.cs` incorrectly states "The GroupTemplateListGroupTemplateSelectedEvent event" instead of referencing the correct class name. This is a documentation bug.
2. **Payload type inconsistency:** The `GroupTemplateListGroupDoubleClickEvent` uses `string` while `GroupTemplateListGroupTemplateSelectedEvent` uses `string[]`. The rationale for this difference is not explained in the source—developers should verify expected payload structure with consuming code.
3. **Vague remarks:** Both events share the identical

View File

@@ -0,0 +1,71 @@
---
source_files:
- Common/DTS.CommonCore/Events/GroupTemplates/TemplateChannelList/TemplateChannelListOrderChangedEvent.cs
- Common/DTS.CommonCore/Events/GroupTemplates/TemplateChannelList/TemplateChannelListSelectionChangedEvent.cs
- Common/DTS.CommonCore/Events/GroupTemplates/TemplateChannelList/TemplateChannelListRequiredChangedEvent.cs
generated_at: "2026-04-17T16:35:32.859295+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "fb9700a29609067e"
---
# Documentation: TemplateChannelList Events
## 1. Purpose
This module defines three event types within the `DTS.Common.Events.GroupTemplates.TemplateChannelList` namespace for publishing and subscribing to changes related to template channel lists. These events facilitate loose coupling between components in a group template management system, allowing subscribers to react to order changes, selection changes, and required-state changes for channels. The events leverage the Prism event aggregation pattern via `CompositePresentationEvent<T>`.
---
## 2. Public Interface
### `TemplateChannelListOrderChangedEvent`
**Signature:** `public class TemplateChannelListOrderChangedEvent : CompositePresentationEvent<IGroupTemplateChannel>`
An event that publishes `IGroupTemplateChannel` payloads when the order of items in a template channel list has changed. Subscribers receive the affected `IGroupTemplateChannel` instance.
---
### `TemplateChannelListSelectionChangedEvent`
**Signature:** `public class TemplateChannelListSelectionChangedEvent : CompositePresentationEvent<IGroupTemplateChannel>`
An event that publishes `IGroupTemplateChannel` payloads when the selection state of an item in a template channel list has changed. Subscribers receive the `IGroupTemplateChannel` instance whose selection changed.
---
### `TemplateChannelListRequiredChangedEvent`
**Signature:** `public class TemplateChannelListRequiredChangedEvent : CompositePresentationEvent<TemplateChannelListRequiredChangeEventArgs>`
An event that publishes `TemplateChannelListRequiredChangeEventArgs` payloads when the "required" state of channel(s) has changed. Subscribers receive an event args object containing both the consumer and the affected channels.
---
### `TemplateChannelListRequiredChangeEventArgs`
**Signature:** `public class TemplateChannelListRequiredChangeEventArgs`
A payload class carrying context for required-state changes.
| Property | Type | Description |
|----------|------|-------------|
| `Consumer` | `object` | The consumer object associated with the required change. |
| `Channels` | `IGroupTemplateChannel[]` | Array of channels affected by the required-state change. |
**Constructor:** `TemplateChannelListRequiredChangeEventArgs(object o, IGroupTemplateChannel[] channels)`
---
## 3. Invariants
- All three event classes inherit from `CompositePresentationEvent<T>` from the Prism framework, ensuring they follow the event aggregation pattern.
- `TemplateChannelListOrderChangedEvent` and `TemplateChannelListSelectionChangedEvent` always carry a single `IGroupTemplateChannel` instance as their payload.
- `TemplateChannelListRequiredChangedEvent` always carries a `TemplateChannelListRequiredChangeEventArgs` instance, which contains a non-null `Consumer` object and a `Channels` array (the array may be empty but is never null per constructor assignment).
- All events are reference types and must be published/subscribed through a Prism `IEventAggregator`.
---
## 4. Dependencies
### This module depends on:
- `DTS.Common.Interface.GroupTemplate` — Provides the `IGroupTemplateChannel` interface used as payload type.
- `Microsoft.Practices.Prism.Events` — Provides `CompositePresentationEvent<T>` base class for event aggregation.