Files
DP44/docs/ai/Common/DTS.Common/Events/Groups/GroupChannelList.md

96 lines
3.5 KiB
Markdown
Raw Normal View History

2026-04-17 14:55:32 -04:00
---
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<GroupChannelDeleteRequestEventArgs>`
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<GroupChannelsChangedEventArgs>`
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<GroupUpdatedEventArgs>`
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<T>` base class for all three events.
- `DTS.Common