@using AyCode.Core.Helpers @using AyCode.Utils.Extensions @using FruitBank.Common.Dtos @using FruitBank.Common.Models @using FruitBankHybrid.Shared.Components.Toolbars @using FruitBankHybrid.Shared.Databases @using FruitBankHybrid.Shared.Services.SignalRs @inject LoggedInModel LoggedInModel; @inject FruitBankSignalRClient FruitBankSignalRClient @* *@ @* *@ @if (IsMasterGrid && LoggedInModel.IsDeveloper) { } @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()) // { // ProductDtos = await Database.ProductDtoTable.LoadDataAsync(!forceReload); // // Database.ProductDtoTable.LoadDataAsync(!forceReload).ContinueWith(x => // // { // // ProductDtos = x.Result; // // }).Forget(); // } } if (!IsMasterGrid) return; 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 (forceReload) Grid?.Reload(); if (ProductDtos == null || !ProductDtos.Any() || forceReload) { //ProductDtos = await Database.ProductDtoTable.LoadDataAsync(!forceReload); Database.ProductDtoTable.LoadDataAsync(!forceReload).ContinueWith(x => { ProductDtos = x.Result; }).Forget(); } LoadingPanelVisibility.Visible = false; } }