Files

47 lines
2.1 KiB
Markdown
Raw Permalink Normal View History

2026-04-17 14:55:32 -04:00
---
source_files:
- Common/DTS.Common/Events/Database/DbStatusEvent.cs
generated_at: "2026-04-17T16:10:34.394598+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "58b4a0b43cbc1077"
---
# Database
### Purpose
This module provides an event mechanism for communicating database switch operations and their outcomes throughout the application. It supports reporting various failure scenarios during database migration/switch operations (remote connection failures, backup failures, copy failures, restore failures) as well as successful completion, enabling the application to respond appropriately to database state transitions.
### Public Interface
**`DbStatusEvent`**
- Signature: `public class DbStatusEvent : PubSubEvent<DbStatusArg>`
- Description: A Prism `PubSubEvent` that carries a `DbStatusArg` payload. Used to notify the application when a database switch event has occurred.
**`DbStatusArg`**
- Signature: `public class DbStatusArg`
- Description: Argument class encapsulating the status and optional exception details for a database operation.
- **`EventTypes`** (nested enum): Defines possible operation outcomes:
- `FailedToConnectToRemote`
- `FailedToBackupLocal`
- `FailedToCopy`
- `FailedToRestoreLocal`
- `FailedToBackupLocalFileNotFound`
- `Complete`
- `LegacyStatus`
- **`Status`** property: `EventTypes` (getter only) - The status type of the operation.
- **`Exception`** property: `Exception` (getter only) - The exception associated with a failure, if any.
- **Constructor**: `DbStatusArg(EventTypes error, Exception exception)` - Initializes a new instance with the specified status and exception.
### Invariants
- `Status` is immutable after construction (get-only property).
- `Exception` is immutable after construction (get-only property).
- `Exception` may be `null` for non-error statuses (e.g., `Complete`), though this is not enforced by the constructor.
### Dependencies
- **Depends on**: `System` (for `Exception` type), `Prism.Events` (for `PubSubEvent<T>` base class).
- **Depended on by**: Not determinable from source alone; consumers would subscribe to or publish this event via Prism