@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;
}
}