@using AyCode.Blazor.Components.Components.Grids @using AyCode.Core.Helpers @using AyCode.Core.Interfaces @using AyCode.Core.Loggers @using AyCode.Services.Nav @using AyCode.Services.Nav.Ekaer.Models @using AyCode.Utils.Extensions @using FruitBank.Common.Entities @using FruitBankHybrid.Shared.Databases @using FruitBankHybrid.Shared.Services.Loggers @using FruitBankHybrid.Shared.Services.SignalRs @inject IEnumerable LogWriters @inject FruitBankSignalRClient FruitBankSignalRClient @{ var ekaerHistory = (EkaerHistory)context.DataItem; TradeCardType? tradeCard = null; if (!string.IsNullOrWhiteSpace(ekaerHistory.XmlDoc)) { try { tradeCard = NavXmlHelper.Deserialize(ekaerHistory.XmlDoc); } catch (Exception ex) { _logger.Error($"EkaerHistory XmlDoc deserialize error; id: {ekaerHistory.Id}", ex); } } } @if (IsMasterGrid) { @* EKÁER-rekordot a rendszer hoz létre (auto-rekord) — kézi new/edit/delete tiltva. *@ } @code { [Inject] public required DatabaseClient Database { get; set; } [Parameter] public AcObservableCollection? EkaerHistories { get; set; } const string ExportFileName = "ExportResult"; string GridSearchText = ""; bool EditItemsEnabled { get; set; } int FocusedRowVisibleIndex { get; set; } public GridEkaerHistoryBase Grid { get; set; } string GridCss => !IsMasterGrid ? "hide-toolbar" : string.Empty; [Parameter] public IId? ParentDataItem { get; set; } public bool IsMasterGrid => ParentDataItem == null; private LoggerClient _logger; protected override async Task OnInitializedAsync() { _logger = new LoggerClient(LogWriters.ToArray()); await ReloadDataFromDb(false); } private async Task ReloadDataFromDb(bool forceReload = false) { if (!IsMasterGrid) return; if (Grid == null) return; using (await ObjectLock.GetSemaphore().UseWaitAsync()) if (forceReload) await Grid.ReloadDataSourceAsync(); if (forceReload) Grid.Reload(); } async Task Grid_FocusedRowChanged(GridFocusedRowChangedEventArgs args) { if (Grid == null) return; if (Grid.IsEditing() && !Grid.IsEditingNewRow()) await Grid.SaveChangesAsync(); FocusedRowVisibleIndex = args.VisibleIndex; EditItemsEnabled = true; } }