void Update(ICommand<RegistrationId> c, Action<RegistrationAggregate> action)
        {
            var stream = _eventStore.LoadEventStream(c.Id);
            var state = new RegistrationState(stream.Events);
            var agg = new RegistrationAggregate(state);

            using (Context.CaptureForThread()) {
                action(agg);
                _eventStore.AppendToStream(c.Id, stream.Version, agg.Changes);
            }
        }
示例#2
0
        void Update(ICommand<RegistrationId> c, Action<RegistrationAggregate> action)
        {
            var stream = _eventStore.LoadEventStream(c.Id);
            var state = new RegistrationState(stream.Events);
            var agg = new RegistrationAggregate(state);

            using (Context.CaptureForThread()) {
                action(agg);
                _eventStore.AppendEventsToStream(c.Id, stream.StreamVersion, agg.Changes);
            }
        }