コード例 #1
0
ファイル: Aggregate.cs プロジェクト: johnbirdau/NStore
        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);
            }
        }
コード例 #2
0
ファイル: Aggregate.cs プロジェクト: johnbirdau/NStore
 void IEventSourcedAggregate.Persisted(Changeset changeset)
 {
     this.Version = changeset.AggregateVersion;
     this.PendingChanges.Clear();
 }