--- source_files: - Common/DTS.Common/Events/Groups/GroupChannelList/GroupChannelDeleteRequestEvent.cs - Common/DTS.Common/Events/Groups/GroupChannelList/GroupChannelsChangedEvent.cs - Common/DTS.Common/Events/Groups/GroupChannelList/GroupUpdatedEvent.cs generated_at: "2026-04-17T16:36:42.587532+00:00" model: "zai-org/GLM-5-FP8" schema_version: 1 sha256: "9096e4545f2ae1d9" --- # Documentation: DTS.Common.Events.Groups.GroupChannelList ## 1. Purpose This module defines three event types used for inter-component communication within the group channel management subsystem. It leverages the Prism.Events pub/sub mechanism to enable loosely-coupled messaging between components that manage group channels. The events facilitate deletion requests, channel list change notifications, and group update status propagation. ## 2. Public Interface ### `GroupChannelDeleteRequestEvent` **Signature:** `public class GroupChannelDeleteRequestEvent : PubSubEvent` An event used to request deletion of a group channel. Publishers signal intent to delete; subscribers handle the actual deletion logic. --- ### `GroupChannelDeleteRequestEventArgs` **Signature:** `public class GroupChannelDeleteRequestEventArgs` | Property | Type | Description | |----------|------|-------------| | `Page` | `object` | The page/context initiating the delete request | | `Channel` | `IGroupChannel` | The channel targeted for deletion | **Constructor:** `GroupChannelDeleteRequestEventArgs(object page, IGroupChannel channel)` --- ### `GroupChannelsChangedEvent` **Signature:** `public class GroupChannelsChangedEvent : PubSubEvent` An event published when the collection of channels associated with a group has changed. --- ### `GroupChannelsChangedEventArgs` **Signature:** `public class GroupChannelsChangedEventArgs` | Property | Type | Description | |----------|------|-------------| | `Group` | `object` | The group whose channels changed | | `ChannelCount` | `int` | The updated count of channels in the group | **Constructor:** `GroupChannelsChangedEventArgs(object group, int channelCount)` --- ### `GroupUpdatedEvent` **Signature:** `public class GroupUpdatedEvent : PubSubEvent` An event published when a group has been updated, with specific status indicating the type of update. --- ### `GroupUpdatedEventArgs` **Signature:** `public class GroupUpdatedEventArgs` | Property | Type | Description | |----------|------|-------------| | `Page` | `object` | The page/context where the update occurred | | `UpdateStatus` | `Status` | Enum indicating what type of update occurred | **Constructor:** `GroupUpdatedEventArgs(object page, Status status)` **Nested Enum:** ```csharp public enum Status { ChannelsInserted, AssignmentsMade } ``` ## 3. Invariants - All event argument classes have immutable properties (read-only, set only via constructor). - `GroupChannelDeleteRequestEventArgs.Channel` must be a valid `IGroupChannel` implementation instance. - `GroupChannelsChangedEventArgs.ChannelCount` is an `int`; the source does not specify whether negative values are valid or prevented. - `GroupUpdatedEventArgs.UpdateStatus` is constrained to the defined `Status` enum values (`ChannelsInserted`, `AssignmentsMade`). - All `Page` and `Group` properties are typed as `object`, allowing any reference type; no type constraints are enforced at compile time. ## 4. Dependencies **This module depends on:** - `Prism.Events` — Provides `PubSubEvent` base class for all three events. - `DTS.Common