public SaveResult Save(IAggregateRoot instance) { if (!instance.UncommittedEvents.Any()) { return(SaveResult.None); } var expectedVersion = instance.UncommittedEvents.First().Version - 1; ////this.EnsureConcurrency(instance.Identity, expectedVersion); var newVersion = instance.UncommittedEvents.Last().Version; var snapshotChange = this.SaveSnapshot(instance, expectedVersion); this.SaveEvents(instance, expectedVersion); this.PublishEvents(instance, snapshotChange); instance.Commit(); return(expectedVersion == 0 ? SaveResult.Added : SaveResult.Updated); }
public SaveResult Save(IAggregateRoot instance) { if (!instance.UncommittedEvents.Any()) { return SaveResult.None; } var expectedVersion = instance.UncommittedEvents.First().Version - 1; ////this.EnsureConcurrency(instance.Identity, expectedVersion); var newVersion = instance.UncommittedEvents.Last().Version; var snapshotChange = this.SaveSnapshot(instance, expectedVersion); this.SaveEvents(instance, expectedVersion); this.PublishEvents(instance, snapshotChange); instance.Commit(); return expectedVersion == 0 ? SaveResult.Added : SaveResult.Updated; }