--- source_files: - Common/DTS.CommonCore/Interface/SensorDatabase/ISensorDatabaseView.cs - Common/DTS.CommonCore/Interface/SensorDatabase/ISensorDatabaseViewModel.cs generated_at: "2026-04-16T02:28:08.664992+00:00" model: "Qwen/Qwen3-Coder-Next-FP8" schema_version: 1 sha256: "9059966d6baab89c" --- # SensorDatabase ## 1. Purpose This module defines the foundational view and view-model interfaces for the sensor database feature within the DTS (Data Tracking System) architecture. It establishes the contract for UI-layer components that interact with sensor data, leveraging the existing `IBaseView` and `IBaseViewModel` base interfaces to maintain consistency with the system’s MVVM (Model-View-ViewModel) pattern. The interfaces themselves are intentionally minimal—serving as marker interfaces—indicating that sensor database UI components inherit standard view/view-model behavior without additional feature-specific API surface at this level. ## 2. Public Interface No public methods, properties, or events are declared in these interfaces beyond those inherited from their base interfaces (`IBaseView` and `IBaseViewModel`). The interfaces are: - **`ISensorDatabaseView`** *Signature:* `public interface ISensorDatabaseView : IBaseView` *Behavior:* Serves as a contract for the *view* (e.g., XAML page, control, or UI component) responsible for presenting sensor database content. Inherits all members of `IBaseView` (e.g., `DataContext`, lifecycle hooks, etc.), though their exact signatures are defined in the base interface (not shown here). - **`ISensorDatabaseViewModel`** *Signature:* `public interface ISensorDatabaseViewModel : IBaseViewModel` *Behavior:* Serves as a contract for the *view-model* that manages state and logic for the sensor database UI. Inherits all members of `IBaseViewModel` (e.g., `Initialize`, `LoadDataAsync`, `Dispose`, etc.), though their exact signatures are defined in the base interface (not shown here). > **Note:** Since both interfaces are empty beyond inheritance, no additional behavior is specified at this level. Concrete implementations (e.g., `SensorDatabaseView`, `SensorDatabaseViewModel`) must define actual functionality. ## 3. Invariants - `ISensorDatabaseView` must be implemented by a type that also satisfies `IBaseView` (e.g., supports binding to an `ISensorDatabaseViewModel` via `DataContext`). - `ISensorDatabaseViewModel` must be implemented by a type that also satisfies `IBaseViewModel` (e.g., supports initialization, data loading, and cleanup). - The pair (`ISensorDatabaseView`, `ISensorDatabaseViewModel`) is intended to be used together in an MVVM binding context, where the view’s `DataContext` is an instance of `ISensorDatabaseViewModel`. ## 4. Dependencies - **Depends on:** - `DTS.Common.Base.IBaseView` - `DTS.Common.Base.IBaseViewModel` *(Exact definitions of these base interfaces are in `DTS.Common.Base`, not provided here.)* - **Used by:** - UI-layer modules (e.g., WPF/MAUI/Xamarin projects) that implement sensor database screens. - Dependency injection containers or view-resolution logic that resolves `ISensorDatabaseView`/`ISensorDatabaseViewModel` for navigation or composition. - **Notable absence:** No direct dependencies on data-access or domain-layer types (e.g., no `ISensorRepository`, `SensorEntity`)—suggesting separation of concerns. ## 5. Gotchas - **Empty interfaces may indicate incomplete design:** The interfaces currently serve only as markers. Developers should verify whether `IBaseView`/`IBaseViewModel` provide sufficient functionality or if sensor-specific behavior (e.g., `RefreshAsync()`, `SelectedSensorId`) was intended here but deferred. - **Ambiguity in scope:** The term "sensor database" is not further qualified (e.g., is it a local cache, a remote API, or a historical log?). Without additional context, consumers must infer semantics from concrete implementations. - **No versioning or extensibility hooks:** The interfaces lack attributes (e.g., `[Obsolete]`, `[EditorBrowsable]`) or generic parameters, making future extension (e.g., adding `ISensorDatabaseView`) potentially breaking. - **None identified from source alone.**