--- source_files: - Common/DTS.CommonCore/Interface/DownloadEvent/IDownloadEvent.cs generated_at: "2026-04-17T16:25:53.216988+00:00" model: "zai-org/GLM-5-FP8" schema_version: 1 sha256: "133af851e3ef2c89" --- # DownloadEvent ### Purpose This module defines `IDownloadEvent`, an interface representing a download event within the DTS system. It appears to model individual events in a multi-event download scenario (referenced by FB 6399), providing properties for event identification, UI state management, and duration tracking. The interface extends `INotifyPropertyChanged`, indicating it is designed for data-binding scenarios in a UI layer. ### Public Interface **`IDownloadEvent`** (extends `INotifyPropertyChanged`) | Property | Type | Access | Description | |----------|------|--------|-------------| | `EventNumber` | `int` | get/set | Numeric identifier for the download event. | | `EventNumberDisplay` | `string` | get/set | Display string representation of the event number. | | `IsEnabled` | `bool` | get/set | Controls whether the event is enabled for interaction. | | `IsReadonly` | `bool` | get/set | Controls whether the event is in a read-only state. | | `IsDefault` | `bool` | get | Indicates whether this event is the default selection. | | `EventLength` | `TimeSpan` | get/set | Total length available for the download event. | | `ShouldDisplayLength` | `bool` | get/set | Controls whether event length is displayed in the UI. | ### Invariants - Implementations must raise `PropertyChanged` events (inherited from `INotifyPropertyChanged`) when any property value changes. - The relationship between `EventNumber` and `EventNumberDisplay` is not defined by the interface; they may or may not be synchronized. ### Dependencies - **Depends on**: `System`, `System.ComponentModel` (for `INotifyPropertyChanged`). - **Depended on by**: Cannot be determined from source alone. ### Gotchas - The reference "FB 6399" in the comment suggests this interface was created or modified in response to a feature request or bug fix; historical context may be found in issue tracking. - The interface does not define how `IsDefault` is determined; it is read-only, implying it is computed or set internally by implementations. ---