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)
|
//public class TrackingItemInt<TDataItem>(TrackingState trackingState, TDataItem currentValue, TDataItem? originalValue = null) : TrackingItem<TDataItem, int>(trackingState, currentValue, originalValue)
|
||||||
// where TDataItem : class, IId<int> {}
|
// 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 TrackingState TrackingState { get; internal set; } = trackingState;
|
||||||
public TDataItem CurrentValue { get; internal set; } = currentValue;
|
public TDataItem CurrentValue { get; internal set; } = currentValue;
|
||||||
|
|
@ -68,7 +68,7 @@ namespace AyCode.Services.Server.SignalRs
|
||||||
//protected abstract int FindIndex(TDataItem newValue);
|
//protected abstract int FindIndex(TDataItem newValue);
|
||||||
//public abstract bool TryGetTrackingItem(TId id, [NotNullWhen(true)] out TrackingItem<TDataItem, TId>? trackingItem);
|
//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 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)
|
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);
|
originalValue = TrackingItemHelpers.JsonClone(originalValue);
|
||||||
|
|
||||||
//trackingItem = new TrackingItem<TDataItem>(trackingState, newValue, 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);
|
_trackingItems.Add(trackingItem);
|
||||||
|
|
||||||
return trackingItem;
|
return trackingItem;
|
||||||
|
|
@ -168,7 +168,7 @@ namespace AyCode.Services.Server.SignalRs
|
||||||
private readonly EqualityComparer<TId> _equalityComparer = EqualityComparer<TId>.Default;
|
private readonly EqualityComparer<TId> _equalityComparer = EqualityComparer<TId>.Default;
|
||||||
|
|
||||||
protected TIList InnerList = Activator.CreateInstance<TIList>();// []; //TODO: Dictionary??? - J.
|
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 object[]? ContextIds;
|
||||||
public string? FilterText { get; set; }
|
public string? FilterText { get; set; }
|
||||||
|
|
@ -184,7 +184,7 @@ namespace AyCode.Services.Server.SignalRs
|
||||||
//protected abstract int FindIndexInnerList(TId id);
|
//protected abstract int FindIndexInnerList(TId id);
|
||||||
//protected abstract TDataItem? FirstOrDefaultInnerList(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 bool IdEquals(TId id1, TId id2) => _equalityComparer.Equals(id1, id2);
|
||||||
protected int FindIndexInnerList(TId id) => InnerList.FindIndex(x => IdEquals(x.Id, id));
|
protected int FindIndexInnerList(TId id) => InnerList.FindIndex(x => IdEquals(x.Id, id));
|
||||||
protected TDataItem? FirstOrDefaultInnerList(TId id) => InnerList.FirstOrDefault(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();
|
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
|
finally
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue