init
This commit is contained in:
117
enriched-qwen3-coder-next/Common/DTS.Common.DataModel/Classes.md
Normal file
117
enriched-qwen3-coder-next/Common/DTS.Common.DataModel/Classes.md
Normal file
@@ -0,0 +1,117 @@
|
||||
---
|
||||
source_files:
|
||||
- Common/DTS.Common.DataModel/Classes/Enums.cs
|
||||
generated_at: "2026-04-16T03:31:47.934438+00:00"
|
||||
model: "Qwen/Qwen3-Coder-Next-FP8"
|
||||
schema_version: 1
|
||||
sha256: "a8986c49f9eaee26"
|
||||
---
|
||||
|
||||
# Classes
|
||||
|
||||
## Documentation: `DTS.Common.DataModel/Classes/Enums.cs`
|
||||
|
||||
### 1. Purpose
|
||||
This module defines core enumerations used throughout the `DataPROWin7.DataModel` namespace to enforce type safety and semantic clarity for key configuration and interoperability concerns. Specifically, it standardizes:
|
||||
- **`IsoChannelSensorCompatibilityLevels`**: Controls warning/error behavior when validating compatibility between ISO channels and sensors (e.g., during data import/export).
|
||||
- **`SupportedExportFormats`**: Lists all export formats supported by the system, with `[Description]` attributes mapping enum values to user-facing format names (e.g., `"csv" → "CSV"`).
|
||||
- **`StrictLevel`**: Defines operational modes for data validation and checkout workflows, ranging from strict enforcement (`Strict`) to permissive or expedited modes (`QuickCheckout`).
|
||||
The module exists to centralize these constants, avoiding magic strings/numbers and ensuring consistent interpretation across the codebase.
|
||||
|
||||
---
|
||||
|
||||
### 2. Public Interface
|
||||
|
||||
#### `IsoChannelSensorCompatibilityLevels`
|
||||
```csharp
|
||||
public enum IsoChannelSensorCompatibilityLevels
|
||||
{
|
||||
DontWarn,
|
||||
Warn,
|
||||
DontAllow
|
||||
}
|
||||
```
|
||||
- **Purpose**: Specifies the severity level for ISO channel-sensor compatibility mismatches.
|
||||
- **Values**:
|
||||
- `DontWarn`: Mismatches are silently ignored.
|
||||
- `Warn`: Mismatches trigger a warning (e.g., UI alert, log entry).
|
||||
- `DontAllow`: Mismatches block the operation (e.g., import/export fails).
|
||||
|
||||
#### `SupportedExportFormats`
|
||||
```csharp
|
||||
public enum SupportedExportFormats
|
||||
{
|
||||
[Description("CSV")] csv,
|
||||
[Description("Diadem")] diadem,
|
||||
[Description("ISO")] iso,
|
||||
[Description("SOMAT")] somat,
|
||||
[Description("TDAS")] tdas,
|
||||
[Description("TSV")] tsv,
|
||||
[Description("TTS")] tts,
|
||||
[Description("RDF")] rdf,
|
||||
[Description("TDMS")] tdms,
|
||||
[Description("DDAS")] ddas,
|
||||
[Description("HDF5")] hdf,
|
||||
[Description("XLSX")] xlsx,
|
||||
[Description("Chapter10")] chapter10, // DataPRO 3.3, IRIG 106 Chapter 10
|
||||
[Description("ASC")] asc
|
||||
}
|
||||
```
|
||||
- **Purpose**: Represents all export formats supported by the application.
|
||||
- **Behavior**:
|
||||
- Each value has a `[Description]` attribute specifying its display name (e.g., `csv` → `"CSV"`).
|
||||
- `chapter10` is explicitly annotated as supporting *IRIG 106 Chapter 10* (a telemetry data format standard).
|
||||
- **Note**: `xlsx` uses `// ReSharper disable once InconsistentNaming` to suppress naming convention warnings (likely due to casing mismatch with PascalCase guidelines).
|
||||
|
||||
#### `StrictLevel`
|
||||
```csharp
|
||||
public enum StrictLevel
|
||||
{
|
||||
Strict,
|
||||
UpdateTable,
|
||||
CheckoutOnly,
|
||||
QuickCheckout
|
||||
}
|
||||
```
|
||||
- **Purpose**: Configures the rigor of data validation and checkout operations.
|
||||
- **Values**:
|
||||
- `Strict`: Full validation enforced; non-compliant data rejected.
|
||||
- `UpdateTable`: Validation performed, but table schemas may be updated to accommodate data.
|
||||
- `CheckoutOnly`: Validation skipped; only checkout (e.g., file locking, metadata update) occurs.
|
||||
- `QuickCheckout`: Minimal validation; optimized for speed (e.g., bulk operations).
|
||||
|
||||
---
|
||||
|
||||
### 3. Invariants
|
||||
- **`IsoChannelSensorCompatibilityLevels`**:
|
||||
- Values must be used consistently in validation logic (e.g., `DontAllow` must prevent operations, not just log warnings).
|
||||
- **`SupportedExportFormats`**:
|
||||
- The `[Description]` attribute value for each enum member is the canonical string representation used in UI/file dialogs.
|
||||
- `chapter10` is reserved for IRIG 106 Chapter 10 exports (per inline comment).
|
||||
- **`StrictLevel`**:
|
||||
- `Strict` is the most restrictive mode; `QuickCheckout` is the least.
|
||||
- No two modes may have identical behavior in validation/checkout logic.
|
||||
|
||||
---
|
||||
|
||||
### 4. Dependencies
|
||||
- **Depends on**:
|
||||
- `System.ComponentModel` (for `[Description]` attribute).
|
||||
- **Depended upon**:
|
||||
- Other modules in `DataPROWin7.DataModel` (inferred from namespace usage).
|
||||
- Likely used by export pipelines (e.g., format selection), ISO data validation components, and checkout workflows.
|
||||
- *Not directly referenced in source*, but usage is implied by the enum’s purpose and naming.
|
||||
|
||||
---
|
||||
|
||||
### 5. Gotchas
|
||||
- **`xlsx` enum member**:
|
||||
- Uses `// ReSharper disable once InconsistentNaming` to override PascalCase convention (likely due to legacy naming or external format specification requiring lowercase). This may cause confusion if developers expect consistent casing.
|
||||
- **`chapter10` naming**:
|
||||
- The enum value `chapter10` (lowercase) maps to `"Chapter10"` (PascalCase) via `[Description]`. Developers must use `DescriptionAttribute` to retrieve the display name, not `ToString()`.
|
||||
- **Ambiguity in `StrictLevel` semantics**:
|
||||
- The exact behavior differences between `UpdateTable`, `CheckoutOnly`, and `QuickCheckout` are *not specified in this file*. Implementation details (e.g., how `UpdateTable` modifies schemas) must be verified in dependent modules.
|
||||
- **No validation of enum usage**:
|
||||
- The enums themselves contain no runtime validation. Invalid combinations (e.g., `DontAllow` with `QuickCheckout`) must be handled by calling code.
|
||||
|
||||
*None identified beyond the above.*
|
||||
Reference in New Issue
Block a user