using AyCode.Utils.Extensions; using DevExpress.Blazor; using FruitBank.Common.Entities; using FruitBank.Common.SignalRs; using FruitBankHybrid.Shared.Pages; using Microsoft.AspNetCore.Components; namespace FruitBankHybrid.Shared.Components.Grids.Ekaers; public class GridEkaerHistoryBase : FruitBankGridBase, IGrid { private bool _isFirstInitializeParameterCore; private bool _isFirstInitializeParameters; /// Szerver-oldali szűrő a master-grid lekérdezéséhez (a tabok adják át). All = minden. [Parameter] public EkaerHistoryFilter Filter { get; set; } = EkaerHistoryFilter.All; public GridEkaerHistoryBase() : base() { //GetAllMessageTag = SignalRTags.GetEkaerHistories; AddMessageTag = SignalRTags.AddEkaerHistory; UpdateMessageTag = SignalRTags.UpdateEkaerHistory; //RemoveMessageTag = SignalRTags.; } protected override async Task OnInitializedAsync() { if (GetAllMessageTag > 0) return; if (IsMasterGrid) { GetAllMessageTag = SignalRTags.GetEkaerHistories; ContextIds = [Filter]; // szerver-oldali szűrő a tabokhoz (All = minden) — a GetEkaerHistories(filter) param-ja } else { if (ContextIds == null || ContextIds.Length == 0) ContextIds = [ParentDataItem!.Id]; // Detail-mód: a forrás-rekord (Shipping/Order/ShippingDocument) EKÁER-deklarációi a mappingen át. // Megj.: az EkaerHistory már NEM hordoz per-szülő mezőt (a kapcsolat az EkaerHistoryMapping junctionben él), // ezért a kliens-oldali KeyFieldNameToParentId itt nem alkalmazható — a szerver-oldali szűrés // (GetEkaerHistoriesByForeignKey → mapping) adja a szülőhöz tartozó sorokat. (Jelenleg nincs detail-használat.) GetAllMessageTag = SignalRTags.GetEkaerHistoriesByForeignKey; } await base.OnInitializedAsync(); } protected override void OnParametersSet() { base.OnParametersSet(); if (!_isFirstInitializeParameters) { _isFirstInitializeParameters = false; } } protected override async Task SetParametersAsyncCore(ParameterView parameters) { await base.SetParametersAsyncCore(parameters); if (!_isFirstInitializeParameterCore) { //ShowFilterRow = true; //ShowGroupPanel = true; //AllowSort = false; //etc... _isFirstInitializeParameterCore = false; } } }