@using System.Collections.ObjectModel @using AyCode.Blazor.Components.Components.Grids @using AyCode.Core.Helpers @using AyCode.Core.Loggers @using AyCode.Utils.Extensions @using FruitBank.Common.Dtos @using FruitBank.Common.Entities @using FruitBankHybrid.Shared.Components.Grids.Shippings @using FruitBankHybrid.Shared.Databases @using FruitBankHybrid.Shared.Services.Loggers @using FruitBankHybrid.Shared.Services.SignalRs @inject IEnumerable LogWriters @inject FruitBankSignalRClient FruitBankSignalRClient @(((StockTakingItem)context.DataItem)?.StockTaking?.StartDateTime.ToString("g") ?? "") @if (IsMasterGrid) { } @code { //[Inject] public required ObjectLock ObjectLock { get; set; } [Inject] public required DatabaseClient Database { get; set; } [Parameter] public bool IsMasterGrid { get; set; } = false; [Parameter] public AcObservableCollection? Partners { get; set; } [Parameter] public AcObservableCollection? Shippings { get; set; } const string ExportFileName = "ExportResult"; string GridSearchText = ""; bool EditItemsEnabled { get; set; } int FocusedRowVisibleIndex { get; set; } public GridStockTakingItemBase Grid { get; set; } string GridCss => !IsMasterGrid ? "hide-toolbar" : string.Empty; private int _activeTabIndex; 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; } // void Grid_CustomGroup(GridCustomGroupEventArgs e) // { // if (e.FieldName != "StockTaking.StartDateTime") return; // e.SameGroup = ((StockTakingItem)e.DataItem1).StockTakingId == ((StockTakingItem)e.DataItem2).StockTakingId; // e.Handled = true; // } // void Grid_CustomizeGroupValueDisplayText(GridCustomizeGroupValueDisplayTextEventArgs e) // { // return; // if (e.FieldName != "StockTaking.StartDateTime") return; // var startDate = (DateTime)e.Value; // e.DisplayText = startDate.ToString("g"); // } }