đ§ FilterController Documentation
QUICK DOCUMENTATIONâ
- File Path:
/API/Controllers/FilterController.cs - Primary Purpose: Provides filtering options for various asset hierarchy elements
- Key Endpoints:
- đ
POST /api/Filter/AssetType: Returns available asset types based on filter criteria - đ
POST /api/Filter/ComponentType: Returns available component types based on filter criteria - đ
POST /api/Filter/AssetId: Returns available asset IDs based on filter criteria
- đ
- Related Models:
- Various filter query DTOs for different asset hierarchy levels
- Used By:
- UI components for filtering data in reports and asset views
- Search functionality across the application
đ Business Contextâ
The FilterController supports the asset hierarchy structure described in the Overview document, where assets are organized by Asset Class, Asset Type, and Asset Sub-Type, and components are organized by Component Type and Component Sub-Type. This controller enables users to filter assets and components according to this hierarchy.
DETAILED DOCUMENTATIONâ
đ Overviewâ
FilterController provides endpoints that return filtered lists of options for various asset hierarchy elements. These endpoints are primarily used by dropdown menus and filter controls in the user interface, enabling users to narrow down data based on asset hierarchy criteria.
đī¸ Controller Dependenciesâ
- Namespace:
AVP.API.Controllers - Services Used:
Mediator: For handling filter queries
- Other Dependencies:
- Inherits from
ApiController
- Inherits from
đ Endpointsâ
đ Get Asset Typesâ
- HTTP Method: POST
- URL Pattern:
/api/Filter/AssetType - Authentication: đ Required (inherited from ApiController)
- Description: Returns a list of available asset types based on filter criteria
Request Parametersâ
| Parameter | Type | Required | Description |
|---|---|---|---|
| query | AssetTypeOptionListQuery | Yes | Filter criteria for asset types |
Response Formatâ
[
"Asset Type 1",
"Asset Type 2",
"Asset Type 3"
]
đ Get Asset Sub-Typesâ
- HTTP Method: POST
- URL Pattern:
/api/Filter/AssetSubType - Authentication: đ Required (inherited from ApiController)
- Description: Returns a list of available asset sub-types based on filter criteria
Request Parametersâ
| Parameter | Type | Required | Description |
|---|---|---|---|
| query | AssetSubTypeOptionListQuery | Yes | Filter criteria for asset sub-types |
Response Formatâ
[
"Asset Sub-Type 1",
"Asset Sub-Type 2",
"Asset Sub-Type 3"
]
đ Get Componentsâ
- HTTP Method: POST
- URL Pattern:
/api/Filter/Component - Authentication: đ Required (inherited from ApiController)
- Description: Returns a list of available components based on filter criteria
Request Parametersâ
| Parameter | Type | Required | Description |
|---|---|---|---|
| query | ComponentOptionListQuery | Yes | Filter criteria for components |
Response Formatâ
[
"Component 1",
"Component 2",
"Component 3"
]
đ Get Component Typesâ
- HTTP Method: POST
- URL Pattern:
/api/Filter/ComponentType - Authentication: đ Required (inherited from ApiController)
- Description: Returns a list of available component types based on filter criteria
Request Parametersâ
| Parameter | Type | Required | Description |
|---|---|---|---|
| query | ComponentTypeOptionListQuery | Yes | Filter criteria for component types |
Response Formatâ
[
"Component Type 1",
"Component Type 2",
"Component Type 3"
]
đ Get Component Sub-Typesâ
- HTTP Method: POST
- URL Pattern:
/api/Filter/ComponentSubType - Authentication: đ Required (inherited from ApiController)
- Description: Returns a list of available component sub-types based on filter criteria
Request Parametersâ
| Parameter | Type | Required | Description |
|---|---|---|---|
| query | ComponentSubTypeOptionListQuery | Yes | Filter criteria for component sub-types |
Response Formatâ
[
"Component Sub-Type 1",
"Component Sub-Type 2",
"Component Sub-Type 3"
]
đ Get Asset IDsâ
- HTTP Method: POST
- URL Pattern:
/api/Filter/AssetId - Authentication: đ Required (inherited from ApiController)
- Description: Returns a list of available asset IDs based on filter criteria
Request Parametersâ
| Parameter | Type | Required | Description |
|---|---|---|---|
| query | AssetIdOptionListQuery | Yes | Filter criteria for asset IDs |
Response Formatâ
[
"Asset-001",
"Asset-002",
"Asset-003"
]
đĄ Implementation Notesâ
- âšī¸ All endpoints follow the same pattern of accepting a query object and returning a filtered list of string values
- đ The query objects typically contain criteria such as job ID, asset class, or other contextual filters
- đ These endpoints are primarily used to populate dropdown lists in the UI for interactive filtering
- ⥠Responses are optimized to return only the necessary string values, making them fast and lightweight