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
where TSignalRDataSource : AcSignalRDataSource<TDataItem, TId, AcObservableCollection<TDataItem>>
where TSignalRDataSource : AcSignalRDataSource<TDataItem, TId, List<TDataItem>>
where TDataItem : class, IId<TId>
where TId : struct
where TLoggerClient : AcLoggerBase
@ -30,8 +30,8 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
protected bool IsFirstInitializeParameters;
protected bool IsFirstInitializeParameterCore;
private TSignalRDataSource? _dataSource = null!;
private AcObservableCollection<TDataItem>? _dataSourceParam = [];
private TSignalRDataSource _dataSource = null!;
private List<TDataItem> _dataSourceParam = [];
private string _gridLogName;
public MgGridBase() : base()
@ -61,7 +61,7 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
{
_filterText = value;
if (_dataSource != null && _dataSource.FilterText != value)
if (_dataSource != null! && _dataSource.FilterText != value)
{
_dataSource.FilterText = value;
ReloadDataSourceAsync().Forget();
@ -115,31 +115,13 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
}
set
{
_dataSourceParam = value as AcObservableCollection<TDataItem>;
_dataSourceParam = value as List<TDataItem>;
if (_dataSource != null) // && _dataSourceParam is List<TDataItem> workingReferenceList)
{
SetWorkingReferenceList(_dataSourceParam);
}
if (_dataSource != null!) // && _dataSourceParam is List<TDataItem> workingReferenceList)
_dataSource.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()
{
if (Logger == null)
@ -157,7 +139,7 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
_dataSource.FilterText = FilterText;
//_dataSource = new SignalRDataSource<TDataItem>(SignalRClient, crudTags, ContextIds) { FilterText = FilterText };
SetGridData(_dataSource.GetReferenceInnerList());
Data = _dataSource;
_dataSource.OnDataSourceLoaded += OnDataSourceLoaded;
_dataSource.OnDataSourceItemChanged += OnDataSourceItemChanged;
@ -184,13 +166,9 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
private Task OnDataSourceLoaded()
{
Logger.Debug($"{_gridLogName} OnDataSourceLoaded; Count: {_dataSource?.Count}");
//if(_dataSourceParam.GetType() == typeof()AcObservableCollection<TDataItem>)
SetGridData(_dataSource!.GetReferenceInnerList());
//else Reload();
Logger.Debug($"{_gridLogName} OnDataSourceLoaded; Count: {_dataSource.Count}");
Reload();
//_dataSource.LoadItem(_dataSource.First().Id).Forget();
return OnDataSourceChanged.InvokeAsync(_dataSource);
}
@ -199,9 +177,7 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
{
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();
}
@ -217,7 +193,7 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
}
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)))!;
}
}
@ -324,8 +300,8 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
if (e.IsNew)
{
if (EditNewRowPosition is GridEditNewRowPosition.FixedOnTop or GridEditNewRowPosition.Top) await AddDataItemAsync(dataItem);
else await InsertDataItemAsync(0, dataItem);
if (EditNewRowPosition is GridEditNewRowPosition.FixedOnTop or GridEditNewRowPosition.Top) await InsertDataItemAsync(0, dataItem);
else await AddDataItemAsync(dataItem);
}
else await UpdateDataItemAsync(dataItem);