Files
DP44/docs/ai/Common/DTS.Common/Classes/Groups/ChannelSettings.md
2026-04-17 14:55:32 -04:00

49 lines
2.9 KiB
Markdown

---
source_files:
- Common/DTS.Common/Classes/Groups/ChannelSettings/ChannelSettingRecord.cs
- Common/DTS.Common/Classes/Groups/ChannelSettings/GroupChannelSettingRecord.cs
- Common/DTS.Common/Classes/Groups/ChannelSettings/ChannelSettingBase.cs
generated_at: "2026-04-17T15:40:13.354076+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "8d2215e3e5ca4a40"
---
# Channel Settings Module Documentation
## 1. Purpose
This module provides data structures for managing channel configuration settings within the DTS system. It defines three core classes: `ChannelSettingRecord` for storing setting definitions (ID, name, default value), `GroupChannelSettingRecord` for associating settings with specific channels, and `ChannelSettingBase` which serves as a concrete implementation of `IChannelSetting` with type conversion utilities and standardized setting name constants. The module supports both programmatic construction and hydration from database readers.
---
## 2. Public Interface
### ChannelSettingRecord
**Namespace:** `DTS.Common.Classes.Groups.ChannelSettings`
**Implements:** `IChannelSettingRecord`
**Inherits:** `Common.Base.BasePropertyChanged`
| Member | Signature | Description |
|--------|-----------|-------------|
| `Id` | `int` property (get/set) | Numeric identifier for the setting record. Notifies property change via `SetProperty`. |
| `SettingName` | `string` property (get/set) | Name identifier for the setting. Notifies property change. |
| `DefaultValue` | `string` property (get/set) | Default value for the setting. Notifies property change. |
| Constructor | `ChannelSettingRecord()` | Default parameterless constructor. |
| Constructor | `ChannelSettingRecord(IDataReader reader)` | Hydrates instance from database reader using `Utility.GetInt` and `Utility.GetString`. Reads columns: "Id", "SettingName", "DefaultValue". |
---
### GroupChannelSettingRecord
**Namespace:** `DTS.Common.Classes.Groups.ChannelSettings`
**Implements:** `IGroupChannelSettingRecord`
**Inherits:** `BasePropertyChanged`
| Member | Signature | Description |
|--------|-----------|-------------|
| `ChannelId` | `long` property (get/set) | Channel identifier. Notifies property change. |
| `SettingId` | `int` property (get/set) | Setting identifier. Notifies property change. |
| `SettingValue` | `string` property (get/set) | The value for this channel-setting pair. Notifies property change. |
| Constructor | `GroupChannelSettingRecord()` | Default parameterless constructor. |
| Constructor | `GroupChannelSettingRecord(IDataReader reader, int storedProcedureVersionUsed)` | Hydrates from database reader. Conditionally reads `ChannelId` only if `storedProcedureVersionUsed >= Constants.BULK_GROUPCHANNELSETTINGS_GET_DB_VERSION`. Always reads "SettingId" and "SettingValue". |
| Constructor | `GroupChannelSettingRecord(long channelId, int settingId, string settingValue)` | Direct