@using AyCode.Core.Helpers @using AyCode.Utils.Extensions @using FruitBank.Common.Dtos @using FruitBank.Common.Models @using FruitBankHybrid.Shared.Components.Grids.GenericAttributes @using FruitBankHybrid.Shared.Components.Toolbars @using FruitBankHybrid.Shared.Databases @using FruitBankHybrid.Shared.Services.SignalRs @inject LoggedInModel LoggedInModel; @inject FruitBankSignalRClient FruitBankSignalRClient @* *@ @* *@ @if (IsMasterGrid && LoggedInModel.IsAdministrator) { var orderItemDto = ((OrderItemDto)context.DataItem); @{ } @{ var genericAttributeDtos = new AcObservableCollection(orderItemDto.GenericAttributes); } } @if (IsMasterGrid) { } @code { [Inject] public required DatabaseClient Database { get; set; } [Parameter] public bool IsMasterGrid { get; set; } = false; //[Parameter] public OrderDto? OrderDto { get; set; } [Parameter] public List? OrderItemDtos { get; set; } [Parameter] public IEnumerable? ProductDtos { get; set; } string GridCss => !IsMasterGrid ? "hide-toolbar" : string.Empty; public MgGridBase Grid; protected override async Task OnInitializedAsync() { await ReloadDataFromDb(); } private async Task ReloadDataFromDb(bool forceReload = false) { LoadingPanelVisibility.Visible = true; using (await ObjectLock.GetSemaphore().UseWaitAsync()) { if (ProductDtos == null || !ProductDtos.Any() || forceReload) ProductDtos = await Database.ProductDtoTable.LoadDataAsync(!forceReload); } if (IsMasterGrid) { using (await ObjectLock.GetSemaphore().UseWaitAsync()) { if (OrderItemDtos == null) OrderItemDtos = await FruitBankSignalRClient.GetAllOrderItemDtos() ?? []; else if (OrderItemDtos.Count == 0 || forceReload) { OrderItemDtos.Clear(); OrderItemDtos.AddRange(await FruitBankSignalRClient.GetAllOrderItemDtos() ?? []); } } // if (ProductDtos == null || !ProductDtos.Any() || forceReload) // { // //ProductDtos = await Database.ProductDtoTable.LoadDataAsync(!forceReload); // Database.ProductDtoTable.LoadDataAsync(!forceReload).ContinueWith(x => // { // ProductDtos = x.Result; // }).Forget(); // } //if (forceReload) Grid?.Reload(); } LoadingPanelVisibility.Visible = false; } }