public TrackingCollection(IStateTransitionManager stateTransitionManager, IEqualityComparer <object> comparer = null) { if (stateTransitionManager == null) { stateTransitionManager = Infrastructure.StateTransitionManager.Instance; } StateTransitionManagerInternal = stateTransitionManager; ItemsInternal = new Dictionary <object, EntityState>(comparer ?? ReferenceEqualityComparer.Instance); }
public TrackingCollection([NotNull] IEnumerable <KeyValuePair <object, EntityState> > changes, IStateTransitionManager stateTransitionManager = null, IEqualityComparer <object> comparer = null) : this(stateTransitionManager, comparer) { Should.NotBeNull(changes, nameof(changes)); foreach (var item in changes) { ItemsInternal.Add(item.Key, item.Value); } }
/// <summary> /// Initializes a new instance of the <see cref="TrackingCollection" /> class. /// </summary> public TrackingCollection([NotNull] IEnumerable <IEntityStateEntry> changes, IStateTransitionManager stateTransitionManager = null, IEqualityComparer <object> comparer = null) : this(stateTransitionManager, comparer) { Should.NotBeNull(changes, "changes"); foreach (var item in changes) { ItemsInternal.Add(item.Entity, item.State); } }
public TrackingCollection([NotNull] IEnumerable <object> collection, EntityState entityState = EntityState.Unchanged, IStateTransitionManager stateTransitionManager = null, IEqualityComparer <object> comparer = null) : this(stateTransitionManager, comparer) { Should.NotBeNull(collection, nameof(collection)); foreach (object item in collection) { ItemsInternal.Add(item, entityState); } }
/// <summary> /// Initializes a new instance of the <see cref="TrackingCollection" /> class. /// </summary> public TrackingCollection(IStateTransitionManager stateTransitionManager = null, IEqualityComparer <object> comparer = null) { if (stateTransitionManager == null) { stateTransitionManager = ServiceProvider.TrackingCollectionStateTransitionManagerFactory(this) ?? Infrastructure.StateTransitionManager.Instance; } if (comparer == null) { comparer = ServiceProvider.TrackingCollectionEqualityComparerFactory(this) ?? ReferenceEqualityComparer.Instance; } Locker = new object(); StateTransitionManagerInternal = stateTransitionManager; ItemsInternal = new Dictionary <object, EntityState>(comparer); }
protected virtual ITrackingCollection Create(IStateTransitionManager transitionManager = null, IEqualityComparer <object> comparer = null) { return(new TrackingCollection(transitionManager, comparer)); }