Files
DP44/enriched-partialglm/Common/DTS.CommonCore/Interface/DownloadData.md

47 lines
2.9 KiB
Markdown
Raw Normal View History

2026-04-17 14:55:32 -04:00
---
source_files:
- Common/DTS.CommonCore/Interface/DownloadData/IDownloadDataView.cs
- Common/DTS.CommonCore/Interface/DownloadData/IDownloadDataViewModel.cs
generated_at: "2026-04-16T12:17:08.936258+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "3467185c7a4c208b"
---
# Documentation: Download Data Interfaces
## 1. Purpose
This module defines the contractual interfaces for the View and ViewModel components within a "Download Data" feature, adhering to a Model-View-ViewModel (MVVM) architectural pattern. It establishes a type hierarchy for download-specific UI components by extending base view and viewModel interfaces, allowing for polymorphic handling of download views within the broader `DTS.Common` system.
## 2. Public Interface
### `IDownloadDataView`
* **Namespace:** `DTS.Common.Interface`
* **Inheritance:** `IBaseView`
* **Signature:**
```csharp
public interface IDownloadDataView : IBaseView
```
* **Description:** A marker interface intended to represent the View layer for a data download operation. It inherits from `IBaseView` but defines no additional members.
### `IDownloadDataViewModel`
* **Namespace:** `DTS.Common`
* **Inheritance:** `IBaseViewModel`
* **Signature:**
```csharp
public interface IDownloadDataViewModel : IBaseViewModel
```
* **Description:** A marker interface intended to represent the ViewModel layer for a data download operation. It inherits from `IBaseViewModel` but defines no additional members.
## 3. Invariants
* **Base Type Compliance:** Any class implementing `IDownloadDataView` must also implement `IBaseView`. Similarly, any class implementing `IDownloadDataViewModel` must also implement `IBaseViewModel`.
* **Member Expectations:** As both interfaces currently define no members, they rely entirely on the contracts defined by their parent interfaces (`IBaseView` and `IBaseViewModel`).
## 4. Dependencies
* **External Dependencies:**
* `DTS.Common.Base`: Both interfaces depend on this namespace for `IBaseView` and `IBaseViewModel`.
* **Dependents:** Unknown from source alone. It is expected that concrete View and ViewModel classes within the "Download Data" feature will implement these interfaces.
## 5. Gotchas
* **Empty Interfaces:** Both `IDownloadDataView` and `IDownloadDataViewModel` are currently empty (marker interfaces). They do not define properties such as `DownloadCommand`, `ProgressPercentage`, or `Cancel` methods that one might expect for a download feature. Functionality must be inferred from the base interfaces or implemented in concrete classes without interface enforcement.
* **Namespace Inconsistency:** The View interface (`IDownloadDataView`) resides in `DTS.Common.Interface`, while the ViewModel interface (`IDownloadDataViewModel`) resides in the root `DTS.Common` namespace. This discrepancy may cause confusion regarding file organization or referencing.