124 lines
3.9 KiB
C#
124 lines
3.9 KiB
C#
using AyCode.Core.Interfaces;
|
|
using AyCode.Utils.Extensions;
|
|
using DevExpress.Blazor;
|
|
using FruitBank.Common.Dtos;
|
|
using FruitBank.Common.Entities;
|
|
using FruitBank.Common.Interfaces;
|
|
using FruitBank.Common.SignalRs;
|
|
using FruitBankHybrid.Shared.Pages;
|
|
using Microsoft.AspNetCore.Components;
|
|
using Nop.Core.Domain.Common;
|
|
using Nop.Core.Domain.Orders;
|
|
|
|
namespace FruitBankHybrid.Shared.Components.Grids.GenericAttributes;
|
|
|
|
public class GridGenericAttributeBase: FruitBankGridBase<GenericAttributeDto>, IGrid
|
|
{
|
|
protected const int ContextEntityIdIndex = 0;
|
|
protected const int ContextKeyGroupIndex = 1;
|
|
protected const int ContextStoreIdIndex = 2;
|
|
|
|
private bool _isFirstInitializeParameterCore;
|
|
private bool _isFirstInitializeParameters;
|
|
|
|
public GridGenericAttributeBase() : base()
|
|
{
|
|
AddMessageTag = SignalRTags.AddGenericAttributeDto;
|
|
UpdateMessageTag = SignalRTags.UpdateGenericAttributeDto;
|
|
|
|
//RemoveMessageTag = SignalRTags.;
|
|
}
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
if (GetAllMessageTag > 0) return;
|
|
|
|
if (IsMasterGrid) GetAllMessageTag = SignalRTags.GetGenericAttributeDtos;
|
|
else
|
|
{
|
|
var hasContextIdParameter = ContextIds is { Length: > 0 };
|
|
|
|
if (!hasContextIdParameter)
|
|
{
|
|
ContextIds = new object[3];
|
|
ContextIds[ContextEntityIdIndex] = ParentDataItem!.Id;
|
|
ContextIds[ContextStoreIdIndex] = LoggedInModel.CustomerDto!.RegisteredInStoreId;
|
|
}
|
|
|
|
GetAllMessageTag = SignalRTags.GetGenericAttributeDtosByEntityIdAndKeyGroup;
|
|
if (KeyFieldNameToParentId.IsNullOrWhiteSpace()) KeyFieldNameToParentId = nameof(GenericAttribute.EntityId);
|
|
|
|
switch (ParentDataItem)
|
|
{
|
|
case IProductDto:
|
|
if (!hasContextIdParameter) ContextIds![ContextKeyGroupIndex] = "Product";
|
|
|
|
break;
|
|
case IOrderDto:
|
|
if (!hasContextIdParameter) ContextIds![ContextKeyGroupIndex] = nameof(Order);
|
|
|
|
break;
|
|
case IOrderItemDto:
|
|
if (!hasContextIdParameter) ContextIds![ContextKeyGroupIndex] = nameof(OrderItem);
|
|
|
|
break;
|
|
}
|
|
}
|
|
|
|
await base.OnInitializedAsync();
|
|
}
|
|
|
|
protected override async Task OnCustomizeEditModel(GridCustomizeEditModelEventArgs e)
|
|
{
|
|
if (e.IsNew && ParentDataItem != null && ContextIds != null)
|
|
{
|
|
var editModel = (e.EditModel as GenericAttributeDto)!;
|
|
|
|
editModel.KeyGroup = (string)ContextIds![ContextKeyGroupIndex];
|
|
editModel.StoreId = (int)ContextIds![ContextStoreIdIndex];
|
|
editModel.CreatedOrUpdatedDateUTC = DateTime.UtcNow;
|
|
|
|
e.EditModel = editModel;
|
|
}
|
|
|
|
await base.OnCustomizeEditModel(e);
|
|
}
|
|
|
|
protected override void OnParametersSet()
|
|
{
|
|
base.OnParametersSet();
|
|
|
|
if (!_isFirstInitializeParameters)
|
|
{
|
|
//if (!IsMasterGrid && (ContextIds == null || ContextIds.Length == 0))
|
|
//{
|
|
// ContextIds = [ParentDataItem!.Id];
|
|
// GetAllMessageTag = SignalRTags.GetShippingItemsByDocumentId;
|
|
//}
|
|
|
|
_isFirstInitializeParameters = false;
|
|
}
|
|
}
|
|
|
|
protected override async Task SetParametersAsyncCore(ParameterView parameters)
|
|
{
|
|
await base.SetParametersAsyncCore(parameters);
|
|
|
|
if (!_isFirstInitializeParameterCore)
|
|
{
|
|
//if (!IsMasterGrid && (ContextIds == null || ContextIds.Length == 0))
|
|
//{
|
|
// ContextIds = [ParentDataItem!.Id];
|
|
// GetAllMessageTag = SignalRTags.GetShippingItemsByDocumentId;
|
|
//}
|
|
|
|
//ShowFilterRow = true;
|
|
//ShowGroupPanel = true;
|
|
//AllowSort = false;
|
|
|
|
//etc...
|
|
|
|
_isFirstInitializeParameterCore = false;
|
|
}
|
|
}
|
|
} |