public void Existing(T model) { if (model == null) { throw new ArgumentNullException(nameof(model)); } _trackedModels.Add(model, TrackedModel <T> .Existing(model)); }
public void New(T model) { if (model == null) { throw new ArgumentNullException(nameof(model)); } if (_trackedModels.TryGetValue(model, out var existingModel) && existingModel.State == TrackedModelState.Removed) { _trackedModels[model] = existingModel.WithNewState(TrackedModelState.Existing); return; } _trackedModels.Add(model, TrackedModel <T> .New(model)); }