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); } }
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); } }
public RegistrationAggregate(RegistrationState state) { _state = state; }