2.5 KiB
2.5 KiB
Conventions
For core framework conventions see:
CONVENTIONS.md(in AyCode.Core repo) For UI framework conventions see:CONVENTIONS.md(in AyCode.Blazor repo)
Naming
- fb prefix on database tables:
fbPallet,fbShipping,fbShippingItem, etc. - Dto suffix for DTOs wrapping nopCommerce entities:
OrderDto,OrderItemDto,ProductDto. - XxxItemPallet for measurement records:
ShippingItemPallet,OrderItemPallet,StockTakingItemPallet. - Grid prefix for Blazor grid components:
GridPartnerBase,GridShippingBase, etc. - GridXxxBase = C# code-behind class inheriting
FruitBankGridBase<TDataItem>. - GridXxx.razor = Razor markup using
<GridXxxBase>with<Columns>and<DetailRowTemplate>. - OnGrid prefix for MgGridBase event parameters:
OnGridItemDeleting,OnGridEditModelSaving,OnGridFocusedRowChanged, etc. (avoids collision with DxGrid base events). - SignalRTags constants use numeric ranges by domain (see
FruitBank.Common/SignalRs/).
Patterns
- MeasuringItemPalletBase as abstract base for all three measurement hierarchies.
- GenericAttributes for extending nopCommerce entities with custom data (IsMeasurable, Tare, AverageWeight).
- Composition interfaces for measurement traits: IMeasuringValues = IMeasuringWeights + IMeasuringQuantity.
- DevExpress DxGrid with
AcSignalRDataSourcefor real-time grid data. - MgGridBase — canonical grid base from AyCode.Blazor (see
AyCode.Blazor.Components/docs/MGGRID.md(in AyCode.Blazor repo)). Provides SignalR CRUD, layout persistence, master-detail, InfoPanel, fullscreen. - FruitBankGridBase — project adapter that fixes
TId=int,TLoggerClient=LoggerClient, adds per-user layout and master/detail defaults. - FruitBankSignalRClient as single hub client for all server communication.
- DatabaseClient for client-side caching with ConcurrentDictionary tables.
Grid Creation Checklist
- Create
GridXxxBase.csinheritingFruitBankGridBase<TEntity>. - Set CRUD tags in constructor:
GetAllMessageTag,AddMessageTag,UpdateMessageTag,RemoveMessageTag. - Create
GridXxx.razorwith<GridXxxBase>,<Columns>, optional<DetailRowTemplate>. - Wrap in
<MgGridWithInfoPanel>if InfoPanel is needed. - For detail grids: set
ParentDataItem,KeyFieldNameToParentId,ContextIds.
UI (Hungarian Locale)
- Status labels and UI text are in Hungarian.
- MeasuringStatus display: "Nincs elkezdve", "Elkezdve", "Kész", "Auditált".
- Date format follows Hungarian conventions.