47 lines
2.9 KiB
Markdown
47 lines
2.9 KiB
Markdown
|
|
---
|
||
|
|
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.
|