Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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;
        }