Theming, Resources, Localization & Modernization
The Operations Dashboard gets a light/dark theme
switch, a reusable StatusChip UserControl, captions in Strings.resx + Strings.de.resx, two cultures
(en-US, de-DE) switched at runtime, and culture-aware dates and currency
(6/14/2026 · $1,850.00 ⇄ 14.06.2026 · 1.850,00 €).
Run it
cd "LearnWisej-Samples/Production Architecture Deep Dive\Module 10\TicketOps"
dotnet run -f net10.0 --urls http://localhost:5110
Then open http://localhost:5110 (or open TicketOps.slnx in Visual Studio and press F5).
The screens
- Operations Dashboard: Theme and Culture pickers, four KPI cards (one
StatusChipeach), the work-order grid (Due and Cost formatted for the culture), a detail strip for the selected order, Open detail… and Next status, and a status line. Picking Italiano shows the "not shipped" message; Next status on a finished order shows the domain rule. - Work order detail (dialog): the same chip, captions and formatting, and Next status / Close.
Where things live
TicketOps/
├─ Views/ OperationsDashboard, WorkOrderDetail
├─ Controls/ StatusChip, StatusBanner
├─ Themes/TicketOps.mixin.theme the "chip" appearance and chip-* colours
├─ Resources/ Strings.resx, Strings.de.resx, Strings.cs
├─ Services/ SessionContext, LocalizationService, WorkOrderService
├─ Domain/ WorkOrder (CanAdvance), DashboardSnapshot, OperationResult
├─ Data/ IWorkOrderRepository + in-memory implementation
├─ Infrastructure/ ThemeSwitcher, ILog/ActivityLog, AppComposition
└─ docs/ the deliverables