Files

41 lines
2.4 KiB
Markdown
Raw Permalink Normal View History

2026-04-17 14:55:32 -04:00
---
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