fixes
This commit is contained in:
parent
bb3cc3c37c
commit
545b543abe
|
|
@ -16,7 +16,7 @@ namespace AyCode.Services.Server.SignalRs
|
|||
//public class TrackingItemInt<TDataItem>(TrackingState trackingState, TDataItem currentValue, TDataItem? originalValue = null) : TrackingItem<TDataItem, int>(trackingState, currentValue, originalValue)
|
||||
// where TDataItem : class, IId<int> {}
|
||||
|
||||
public abstract class TrackingItem<TDataItem, TId>(TrackingState trackingState, TDataItem currentValue, TDataItem? originalValue = null) where TDataItem : class, IId<TId> where TId : struct
|
||||
public class TrackingItem<TDataItem, TId>(TrackingState trackingState, TDataItem currentValue, TDataItem? originalValue = null) where TDataItem : class, IId<TId> where TId : struct
|
||||
{
|
||||
public TrackingState TrackingState { get; internal set; } = trackingState;
|
||||
public TDataItem CurrentValue { get; internal set; } = currentValue;
|
||||
|
|
@ -68,7 +68,7 @@ namespace AyCode.Services.Server.SignalRs
|
|||
//protected abstract int FindIndex(TDataItem newValue);
|
||||
//public abstract bool TryGetTrackingItem(TId id, [NotNullWhen(true)] out TrackingItem<TDataItem, TId>? trackingItem);
|
||||
|
||||
private bool HasIdValue(TDataItem dataItem) => _equalityComparer.Equals(dataItem.Id, default);//dataItem.Id.IsNullOrEmpty();
|
||||
private bool HasIdValue(TDataItem dataItem) => !_equalityComparer.Equals(dataItem.Id, default);//dataItem.Id.IsNullOrEmpty();
|
||||
public int FindIndex(TDataItem newValue) => _trackingItems.FindIndex(x => _equalityComparer.Equals(x.CurrentValue.Id, newValue.Id));
|
||||
public bool TryGetTrackingItem(TId id, [NotNullWhen(true)] out TrackingItem<TDataItem, TId>? trackingItem)
|
||||
{
|
||||
|
|
@ -100,7 +100,7 @@ namespace AyCode.Services.Server.SignalRs
|
|||
originalValue = TrackingItemHelpers.JsonClone(originalValue);
|
||||
|
||||
//trackingItem = new TrackingItem<TDataItem>(trackingState, newValue, originalValue);
|
||||
trackingItem = (TrackingItem<TDataItem, TId>)Activator.CreateInstance(typeof(TrackingItem<TDataItem, TId>), trackingState, newValue, originalValue)!;
|
||||
trackingItem = new TrackingItem<TDataItem, TId>(trackingState, newValue, originalValue);
|
||||
_trackingItems.Add(trackingItem);
|
||||
|
||||
return trackingItem;
|
||||
|
|
@ -168,7 +168,7 @@ namespace AyCode.Services.Server.SignalRs
|
|||
private readonly EqualityComparer<TId> _equalityComparer = EqualityComparer<TId>.Default;
|
||||
|
||||
protected TIList InnerList = Activator.CreateInstance<TIList>();// []; //TODO: Dictionary??? - J.
|
||||
protected readonly ChangeTracking<TDataItem, TId> TrackingItems = Activator.CreateInstance<ChangeTracking<TDataItem, TId>>();
|
||||
protected readonly ChangeTracking<TDataItem, TId> TrackingItems = new();
|
||||
|
||||
public object[]? ContextIds;
|
||||
public string? FilterText { get; set; }
|
||||
|
|
@ -184,7 +184,7 @@ namespace AyCode.Services.Server.SignalRs
|
|||
//protected abstract int FindIndexInnerList(TId id);
|
||||
//protected abstract TDataItem? FirstOrDefaultInnerList(TId id);
|
||||
|
||||
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);
|
||||
protected int FindIndexInnerList(TId id) => InnerList.FindIndex(x => IdEquals(x.Id, id));
|
||||
protected TDataItem? FirstOrDefaultInnerList(TId id) => InnerList.FirstOrDefault(x => IdEquals(x.Id, id));
|
||||
|
|
@ -290,7 +290,12 @@ namespace AyCode.Services.Server.SignalRs
|
|||
}
|
||||
else if (clearChangeTracking) TrackingItems.Clear();
|
||||
|
||||
if (refreshDataFromDbAsync) LoadDataSourceAsync(false).Forget();
|
||||
//TODO: Átgondolni, OnDataSourceLoaded meghívódik mielőtt az adatok betöltődnének a .Forget() miatt! - J.
|
||||
if (refreshDataFromDbAsync)
|
||||
{
|
||||
LoadDataSourceAsync(false).Forget();
|
||||
return;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue