41 lines
2.4 KiB
Markdown
41 lines
2.4 KiB
Markdown
|
|
---
|
||
|
|
source_files:
|
||
|
|
- DataPRO/Modules/DatabaseImporter/DatabaseImport/SettingsDB/GlobalSetting.cs
|
||
|
|
- DataPRO/Modules/DatabaseImporter/DatabaseImport/SettingsDB/SettingsDB.cs
|
||
|
|
- DataPRO/Modules/DatabaseImporter/DatabaseImport/SettingsDB/Setting.cs
|
||
|
|
generated_at: "2026-04-17T15:54:56.419164+00:00"
|
||
|
|
model: "zai-org/GLM-5-FP8"
|
||
|
|
schema_version: 1
|
||
|
|
sha256: "13a82f958bbaccd7"
|
||
|
|
---
|
||
|
|
|
||
|
|
# Documentation: SettingsDB Module
|
||
|
|
|
||
|
|
## 1. Purpose
|
||
|
|
|
||
|
|
This module provides a thread-safe, database-backed key-value store for application settings. It implements a singleton pattern (`SettingsDB`) that manages in-memory cached `Setting` objects, with concrete implementations like `GlobalSetting` for system-wide configuration. The module abstracts database operations for persisting and retrieving settings via SQL stored procedures, supporting both string and boolean values with automatic default value initialization.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 2. Public Interface
|
||
|
|
|
||
|
|
### `SettingsDB` (Concrete Class)
|
||
|
|
|
||
|
|
A singleton class that serves as the primary entry point for managing global settings.
|
||
|
|
|
||
|
|
| Method | Signature | Description |
|
||
|
|
|--------|-----------|-------------|
|
||
|
|
| `GetGlobalValue` | `public static string GetGlobalValue(string id, string defaultValue)` | Retrieves a global setting by ID. Creates a new `GlobalSetting` with the provided default value if the ID doesn't exist in the cache. Returns the cached `PropertyValue`. |
|
||
|
|
| `GetGlobalValueBool` | `public static bool GetGlobalValueBool(string id, bool defaultValue)` | Retrieves a global setting as a boolean. Parses the stored string value; returns `defaultValue` if parsing fails. |
|
||
|
|
| `SetGlobalValue` | `public static void SetGlobalValue(string id, string value)` | Stores a global property in the database. Creates a new `GlobalSetting` if the ID doesn't exist; otherwise updates the existing value via `SetValue()`. |
|
||
|
|
| `SetGlobalValueBoolean` | `public static void SetGlobalValueBoolean(string id, bool value)` | Stores a boolean global property. Converts the bool to string using `InvariantCulture` before persisting. |
|
||
|
|
|
||
|
|
### `Setting` (Abstract Base Class)
|
||
|
|
|
||
|
|
Base class for all setting types, handling database persistence.
|
||
|
|
|
||
|
|
| Member | Signature | Description |
|
||
|
|
|--------|-----------|-------------|
|
||
|
|
| `PropertyId` | `public string PropertyId => _propertyId` | Read-only string identifier for the property. |
|
||
|
|
| `PropertyValue` | `public string PropertyValue => _propertyValue` | Read-only string value of the property. |
|
||
|
|
| `UserId` | `public string UserId
|