void IEventSourcedAggregate.ApplyChanges(Changeset changeset) { // skip if same version if (changeset.AggregateVersion == this.Version) { return; } if (changeset.AggregateVersion != this.Version + 1) { throw new AggregateRestoreException(this.Version + 1, changeset.AggregateVersion); } this.Version = changeset.AggregateVersion; foreach (var @event in PreprocessEvents(changeset.Events)) { this._processor.Process(this.State, @event); } }
void IEventSourcedAggregate.Persisted(Changeset changeset) { this.Version = changeset.AggregateVersion; this.PendingChanges.Clear(); }