Klant Statistieken — Techniek (Frontend)
Deze pagina beschrijft hoe Tenant Metrics aan de voorkant gebruikt en getoond worden in het Management Portal, met concrete codevoorbeelden uit de repository.
Overzicht
Service:
TenantMetricsServiceState:
TenantMetricsStateComponent:
EmployeeOverTimeWidgetRepository (API client):
ITenantMetricsRepository(auto-generated client, niet handmatig aanpassen)
Conform de richtlijnen wordt de API-client automatisch gegenereerd. We bouwen alleen in de AutoMate.API en gebruiken de gegenereerde client in de portal.
Datastroom (UI)
EmployeeOverTimeWidgettriggert bij eerste renderState.LoadMetrics().TenantMetricsStateroeptTenantMetricsService.GetMetrics()aan.TenantMetricsServicehaalt de metrics op voor de huidige tenant viaITenantMetricsRepository.GetMetrics(tenantId).De component transformeert de metrics naar grafiekdata — specifiek wordt
Payload["TotalUsers"]gelezen en gekoppeld aan de maand (TimeStamp).
Service
Bron: ManagementPortal.Infrastructure/Services/TenantService/TenantMetricsService.cs
Haalt de tenant-id uit
ApplicationUseren vraagt de metrics via de API-client op.
State
Bron: ManagementPortal.Website/States/TenantMetrics/TenantMetricsState.cs
Houdt de metrics in geheugen en biedt een read-only view voor componenten.
Component (widget)
Bron: ManagementPortal.Website/Components/.../EmployeeOverTimeWidget.razor.cs
Parse van
TotalUsersis defensief (fallback naar 0) en maandnaam wordt innl-NLgeformatteerd.
Voorbeeld: van payload naar grafiekpunt
Uitgaande van een metric record:
Wordt dit getoond als:
Categorie: "mei 2025" (met hoofdletter start in de widget-code)
Waarde: 128 gebruikers
Contract- en UI-verwachtingen
Vereist:
Payloadbevat key"TotalUsers"met een geheel getal (string of number, wordt geparset).Weergave: maandnaam wordt opgemaakt als
MMMM yyyyin cultuurnl-NL.Extra KPI’s kunnen in dezelfde payload worden meegeleverd en door nieuwe widgets worden gelezen.
Uitbreiden (voorbeelden)
Nieuwe widget die
ActiveUserstoont:
Filtering op recente maanden: filter
State.Metricsvóór mapping opmetric.TimeStamp.
Fouten en loading
De component houdt
_isLoadingbij en berekent assen (min/max/step) op basis van de data.Service retourneert
nullbij mislukte responses; zorg in de UI voor null-checks en eventueel een melding.Overweeg telemetry bij parsefouten om datakwaliteit te bewaken.