Compare commits

..

No commits in common. "baaceacdd3a6c0d8c7ca6c2aca7934fbd8845e5e" and "dc4321c1d60897eaaae5b42d74acce9b4d0e8f1f" have entirely different histories.

1 changed files with 15 additions and 39 deletions

View File

@ -19,7 +19,7 @@ public interface IMgGridBase : IGrid
} }
public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClient> : DxGrid, IMgGridBase public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClient> : DxGrid, IMgGridBase
where TSignalRDataSource : AcSignalRDataSource<TDataItem, TId, AcObservableCollection<TDataItem>> where TSignalRDataSource : AcSignalRDataSource<TDataItem, TId, List<TDataItem>>
where TDataItem : class, IId<TId> where TDataItem : class, IId<TId>
where TId : struct where TId : struct
where TLoggerClient : AcLoggerBase where TLoggerClient : AcLoggerBase
@ -30,8 +30,8 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
protected bool IsFirstInitializeParameters; protected bool IsFirstInitializeParameters;
protected bool IsFirstInitializeParameterCore; protected bool IsFirstInitializeParameterCore;
private TSignalRDataSource? _dataSource = null!; private TSignalRDataSource _dataSource = null!;
private AcObservableCollection<TDataItem>? _dataSourceParam = []; private List<TDataItem> _dataSourceParam = [];
private string _gridLogName; private string _gridLogName;
public MgGridBase() : base() public MgGridBase() : base()
@ -61,7 +61,7 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
{ {
_filterText = value; _filterText = value;
if (_dataSource != null && _dataSource.FilterText != value) if (_dataSource != null! && _dataSource.FilterText != value)
{ {
_dataSource.FilterText = value; _dataSource.FilterText = value;
ReloadDataSourceAsync().Forget(); ReloadDataSourceAsync().Forget();
@ -115,31 +115,13 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
} }
set set
{ {
_dataSourceParam = value as AcObservableCollection<TDataItem>; _dataSourceParam = value as List<TDataItem>;
if (_dataSource != null) // && _dataSourceParam is List<TDataItem> workingReferenceList) if (_dataSource != null!) // && _dataSourceParam is List<TDataItem> workingReferenceList)
{ _dataSource.SetWorkingReferenceList(_dataSourceParam);
SetWorkingReferenceList(_dataSourceParam);
}
} }
} }
private void SetWorkingReferenceList(AcObservableCollection<TDataItem>? referenceList)
{
_dataSource?.SetWorkingReferenceList(referenceList);
SetGridData(referenceList);
}
public void SetGridData(object? data)
{
if (ReferenceEquals(Data, data)) return;
BeginUpdate();
Data = data;
EndUpdate();
}
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
if (Logger == null) if (Logger == null)
@ -157,7 +139,7 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
_dataSource.FilterText = FilterText; _dataSource.FilterText = FilterText;
//_dataSource = new SignalRDataSource<TDataItem>(SignalRClient, crudTags, ContextIds) { FilterText = FilterText }; //_dataSource = new SignalRDataSource<TDataItem>(SignalRClient, crudTags, ContextIds) { FilterText = FilterText };
SetGridData(_dataSource.GetReferenceInnerList()); Data = _dataSource;
_dataSource.OnDataSourceLoaded += OnDataSourceLoaded; _dataSource.OnDataSourceLoaded += OnDataSourceLoaded;
_dataSource.OnDataSourceItemChanged += OnDataSourceItemChanged; _dataSource.OnDataSourceItemChanged += OnDataSourceItemChanged;
@ -184,13 +166,9 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
private Task OnDataSourceLoaded() private Task OnDataSourceLoaded()
{ {
Logger.Debug($"{_gridLogName} OnDataSourceLoaded; Count: {_dataSource?.Count}"); Logger.Debug($"{_gridLogName} OnDataSourceLoaded; Count: {_dataSource.Count}");
//if(_dataSourceParam.GetType() == typeof()AcObservableCollection<TDataItem>)
SetGridData(_dataSource!.GetReferenceInnerList());
//else Reload();
Reload();
//_dataSource.LoadItem(_dataSource.First().Id).Forget(); //_dataSource.LoadItem(_dataSource.First().Id).Forget();
return OnDataSourceChanged.InvokeAsync(_dataSource); return OnDataSourceChanged.InvokeAsync(_dataSource);
} }
@ -199,9 +177,7 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
{ {
if (firstRender) if (firstRender)
{ {
if (_dataSource == null) return; if (_dataSourceParam != null!) await _dataSource.LoadDataSource(_dataSourceParam, true, true);
if (_dataSourceParam != null) await _dataSource.LoadDataSource(_dataSourceParam, true, true);
else _dataSource.LoadDataSourceAsync(true).Forget(); else _dataSource.LoadDataSourceAsync(true).Forget();
} }
@ -217,7 +193,7 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
} }
else if (dataItem.Id is int) else if (dataItem.Id is int)
{ {
var newId = -1 * AcDomain.NextUniqueInt32; var newId = -1 * (new Random().Next());
dataItem.Id = (TId)(_typeConverterId.ConvertTo(newId, typeof(TId)))!; dataItem.Id = (TId)(_typeConverterId.ConvertTo(newId, typeof(TId)))!;
} }
} }
@ -324,8 +300,8 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
if (e.IsNew) if (e.IsNew)
{ {
if (EditNewRowPosition is GridEditNewRowPosition.FixedOnTop or GridEditNewRowPosition.Top) await AddDataItemAsync(dataItem); if (EditNewRowPosition is GridEditNewRowPosition.FixedOnTop or GridEditNewRowPosition.Top) await InsertDataItemAsync(0, dataItem);
else await InsertDataItemAsync(0, dataItem); else await AddDataItemAsync(dataItem);
} }
else await UpdateDataItemAsync(dataItem); else await UpdateDataItemAsync(dataItem);