Compare commits

...

2 Commits

Author SHA1 Message Date
Loretta 8d4dd5aa90 improvements, fixes, etc... 2025-11-12 17:19:02 +01:00
Loretta 650066becf MgGridBase improvements, fixes 2025-11-08 06:34:18 +01:00
2 changed files with 17 additions and 13 deletions

View File

@ -10,8 +10,8 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="DevExpress.Blazor" Version="25.1.3" />
<PackageReference Include="DevExpress.Data" Version="25.1.3" />
<PackageReference Include="DevExpress.Blazor" Version="24.2.3" />
<PackageReference Include="MessagePack" Version="3.1.4" />
<PackageReference Include="Microsoft.AspNetCore.Components.Web" Version="9.0.10" />
<PackageReference Include="Microsoft.AspNetCore.SignalR.Client" Version="9.0.10" />

View File

@ -12,28 +12,29 @@ using System.ComponentModel;
namespace AyCode.Blazor.Components.Components.Grids;
public interface IMgGridBase
public interface IMgGridBase : IGrid
{
}
public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClient> : DxGrid, IMgGridBase
where TSignalRDataSource : AcSignalRDataSource<TDataItem, TId, IList<TDataItem>>
where TDataItem : class, IId<TId> where TId : struct
where TSignalRDataSource : AcSignalRDataSource<TDataItem, TId, List<TDataItem>>
where TDataItem : class, IId<TId>
where TId : struct
where TLoggerClient : AcLoggerBase
{
private readonly EqualityComparer<TId> _equalityComparer = EqualityComparer<TId>.Default;
protected bool IsFirstInitializeParameters;
private TSignalRDataSource _dataSource = null!;
private IList<TDataItem> _dataSourceParam = [];
private List<TDataItem> _dataSourceParam = [];
private string _gridLogName;
public MgGridBase() : base()
{
}
protected bool HasIdValue(TDataItem dataItem) => _equalityComparer.Equals(dataItem.Id, default);//dataItem.Id.IsNullOrEmpty();
protected bool HasIdValue(TDataItem dataItem) => !_equalityComparer.Equals(dataItem.Id, default);//dataItem.Id.IsNullOrEmpty();
protected bool IdEquals(TId id1, TId id2) => _equalityComparer.Equals(id1, id2);
[Parameter] public TLoggerClient Logger { get; set; }
@ -98,7 +99,7 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
}
set
{
_dataSourceParam = value;
_dataSourceParam = value as List<TDataItem>;
if (_dataSource != null!)// && _dataSourceParam is List<TDataItem> workingReferenceList)
_dataSource.SetWorkingReferenceList(_dataSourceParam);
@ -167,17 +168,21 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
await base.OnAfterRenderAsync(firstRender);
}
private static void SetNewId(TDataItem dataItem)
{
//TODO: int !!! - J.
if (dataItem.Id is Guid) TypeDescriptor.GetConverter(Guid.NewGuid()).ConvertTo(dataItem.Id, typeof(TId));
}
public Task AddDataItem(TDataItem dataItem)
{
//TODO: !!! - J.
//if (!HasIdValue(dataItem)) dataItem.Id = Guid.NewGuid();
if (!HasIdValue(dataItem)) SetNewId(dataItem);
return _dataSource.Add(dataItem, true);
}
public Task AddDataItemAsync(TDataItem dataItem)
{
//TODO: !!! - J.
//if (!HasIdValue(dataItem)) dataItem.Id = Guid.NewGuid();
if (!HasIdValue(dataItem)) SetNewId(dataItem);
_dataSource.Add(dataItem);
return SaveChangesToServerAsync();
@ -187,8 +192,7 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
{
var dataItem = (e.EditModel as TDataItem)!;
//TODO: !!! - J.
//if (e.IsNew && !HasIdValue(dataItem)) dataItem.Id = Guid.NewGuid();
if (e.IsNew && !HasIdValue(dataItem)) SetNewId(dataItem);
var logText = e.IsNew ? "add" : "update";
Logger.Debug($"{_gridLogName} OnItemSaving {logText}; Id: {dataItem.Id}");