public Task <bool> Add(SnapshotElement <BaseAggregate> snapshot) { lock (_snapshots) { _snapshots.Add(snapshot); return(Task.FromResult(true)); } }
/// <summary> /// Makes a snapshot of the given object and starts dirty state detection /// </summary> /// <param name="obj"></param> public void Start(object obj) { if (obj == null) { throw new ArgumentNullException("obj"); } CleanUp(); _snapshotElement = SnaphotFactory.Create(this, obj); }
private void CleanUp() { if (_snapshotElement != null) { _snapshotElement.ReleaseListeners(); _snapshotElement = null; } _modifiedProperties.Clear(); IsDirty = false; }
internal void MarkPropertyAsChanged(SnapshotElement propertySnapshot) { this._modifiedProperties.Add(propertySnapshot); UpdateDirtyState(); }
private static SnapshotElement <T> Copy <T>(SnapshotElement <BaseAggregate> obj) where T : BaseAggregate { var copy = (T)(obj.Content).Clone(); return(new SnapshotElement <T>(obj.Start, obj.CreateDateTime, obj.Id, copy)); }