Blazor Warranty Service
Blazor Warranty is a .NET 9 Blazor Server app (BlazorWarranty/) that replaced the legacy WinForms CSR screens for warranty work. It’s the day-to-day workspace for Customer Service Reps.
Routes (what CSRs open)
Section titled “Routes (what CSRs open)”| Route | Component | Purpose |
|---|---|---|
/ | Index.razor → ServiceRequestList | Default triage queue after sign-in |
/srl | ServiceRequestList.razor | Alternate list URL |
/sr, /sr/{id} | ServiceRequestMain.razor | Request detail — lines, notes, log, embedded service orders and communications |
/agingitems | AgingItemPage.razor | SLA / aging summary |
/agingitemlist/{projectid} | AgingItemList.razor | Aging items for a project |
/agingitemlistfordivision/{divisionid}/days/{id} | AgingItemListByDivisionAndDays.razor | Division aging drill-down |
/limitedservicerequestline/{encryptedSession} | LimitedServiceRequestLine.razor | Limited-access line view |
/login | Login.razor | Sign-in |
Navigation (NavMenu.razor): only Home (/) and Aging Items (/agingitems). Service orders, lines, and communication tools are nested under /sr/{id}, not separate top-level menu pages.
Nested under /sr/{id}
Section titled “Nested under /sr/{id}”ServiceRequestLineList, ServiceRequestLine, ServiceRequestTransLog, ServiceOrderMain, ServiceOrderForm, ServiceOrderLineList, and CommunicationMain (communication log on a line).
- ASP.NET Core 9 + Blazor Server (
Program.csregisters Razor Pages, Blazor hub, and controllers). - Cookie authentication after Active Directory validation (
TheSmartBuilderdomain viaLoginController). - Memory cache for hot lookups.
- Azure.Storage.Blobs (CSR communication attachments), ClosedXML, FluentValidation (see
BlazorWarranty.csproj). - Homeowner warranty photos load from AWS S3 via
WarrantyImagesBaseUrlinappsettings.json(not local disk). - DataAccessLibrary project (sibling under
BLAZOR-SERVICE/DataAccessLibrary/) providesISqlDataAccess,IAgingItemData,IServiceRequestData,IServiceOrderData,ICommonData,ICommunicationData.
Key appsettings.json settings
Section titled “Key appsettings.json settings”| Key | Role |
|---|---|
WarrantyImagesBaseUrl | S3 base URL for homeowner-uploaded warranty images |
AzureConnectionString, AzureContainerName | Blob storage for CSR communication attachments |
ServerPath, TradePortalPath | Links back to SMART / Trade Portal |
Where the source lives
Section titled “Where the source lives”BLAZOR-SERVICE/├── BlazorWarranty/ ← the web app (net9.0)│ ├── Controllers/LoginController.cs│ ├── Pages/ServiceRequests|AgingItems|Limited/│ ├── Shared/ ← NavMenu, layouts, nested components│ ├── wwwroot/│ ├── Program.cs│ └── appsettings.json├── DataAccessLibrary/ ← Dapper-style SQL access└── Crypt_CoreLib/ ← shared crypto helpersHow it talks to the database
Section titled “How it talks to the database”Reads / writes the same ServiceRequest, ServiceRequestLine, ServiceOrder, ServiceRequestFile, and related tables. Common views: vwServiceRequest, vwServiceOrderManagement, vwServiceOrdersNotCompleted, vwLotServiceRequests.
ServiceRequestFile stores image metadata; file bytes for homeowner uploads are in S3 (thumbnails use a _thumb suffix). CSR comm attachments use Azure Blob.
Sign-in validates domain credentials (AD / LDAP); authorization then uses the signed-in user’s SMART identity from the database, not homeowner Contact records.