Refactor SignalR client DI and config, add test factory Refactored FruitBankSignalRClient construction to use DI and centralized configuration from appsettings.json across all platforms. Introduced TestSignalRClientFactory for consistent test setup. Added FruitBankHubConnectionExtensions for reusable SignalR connection and logging configuration. Updated Program.cs and MauiProgram.cs to register logger factories, log writers, and IHubConnectionBuilder via DI. Embedded appsettings.json in MAUI and updated .csproj references for build flexibility. No business logic changes; all updates are infrastructure and test setup. |
||
|---|---|---|
| .claude | ||
| .cr/personal/FavoritesList | ||
| .github | ||
| FruitBank.Common | ||
| FruitBank.Common.Server | ||
| FruitBankHybrid | ||
| FruitBankHybrid.Shared | ||
| FruitBankHybrid.Shared.Common | ||
| FruitBankHybrid.Shared.Tests | ||
| FruitBankHybrid.Web | ||
| FruitBankHybrid.Web.Client | ||
| docs | ||
| .gitignore | ||
| CLAUDE.md | ||
| FruitBankHybrid.sln | ||
| README.md | ||
| SqlSchemaCompare_Dev_to_Prod.scmp | ||
| test_toon_businessrule.csx | ||
| tmpclaude-bf6e-cwd | ||
README.md
FruitBankHybridApp
nopCommerce plugin for FruitBank, a fruit & vegetable wholesaler. Manages supplier inbound delivery (Shipping), outgoing orders (Order), warehouse weighing, and inventory stocktaking. Runs as Blazor Server, Blazor WASM, and MAUI Hybrid (Android/iOS/Windows).
nopCommerce 4.80.9 requires it
LLM Context
Domain rules and critical pitfalls live in a single file: .github/copilot-instructions.md
| Tool | Auto-loaded | Action needed |
|---|---|---|
| GitHub Copilot | ✅ copilot-instructions.md |
None |
| Claude Code | ✅ CLAUDE.md → references above |
None |
| Cursor / Windsurf | ✅ README.md |
Read copilot-instructions.md via @file |
Detailed docs: docs/ — GLOSSARY.md, ARCHITECTURE.md, CONVENTIONS.md. Domain model schema (TOON) lives in the plugin: NopCommerce.Common/4.70/Plugins/Nop.Plugin.Misc.AIPlugin/docs/SCHEMA.md
Solution Structure
| Project | TFM | Purpose | README |
|---|---|---|---|
FruitBank.Common |
net9.0 | Shared domain: entities, DTOs, interfaces, SignalR tags, measurement helpers | README |
FruitBank.Common.Server |
net9.0 | Server-side: SignalR hubs, broadcast service, logging, nopCommerce integration | README |
FruitBankHybrid.Shared |
net10.0 | Blazor UI: pages, grids, SignalR client, measurement service, layout | README |
FruitBankHybrid.Shared.Common |
net10.0 | Shared common library (placeholder) | README |
FruitBankHybrid |
net10.0‑android/ios/win | MAUI Hybrid app: Android, iOS, Windows | README |
FruitBankHybrid.Web |
net10.0 | Blazor Server host with SignalR hubs | README |
FruitBankHybrid.Web.Client |
net10.0 | Blazor WebAssembly client | README |
Test Projects
| Project | TFM | Purpose | README |
|---|---|---|---|
FruitBankHybrid.Shared.Tests |
net10.0 | Integration + serialization tests (SignalR, JSON, Toon, bunit) | README |
External Dependencies
All projects reference these via DLL (not ProjectReference). Full source is available in sibling directories:
| Repo | Path | Key Docs |
|---|---|---|
| AyCode.Core (net9.0) | ../../../Aycode/Source/AyCode.Core/ |
copilot-instructions, ARCHITECTURE |
| AyCode.Blazor (net10.0) | ../../../Aycode/Source/AyCode.Blazor/ |
copilot-instructions, MGGRID |
| Mango.Nop Libraries (net9.0) | ../NopCommerce.Common/4.70/Libraries/ |
copilot-instructions, ARCHITECTURE |
| FruitBank Plugin (net9.0) | ../NopCommerce.Common/4.70/Plugins/Nop.Plugin.Misc.AIPlugin/ |
README |