private void Then() { if (_eventStack == null) { IAggregateLoader loader = GetOrder(); var uncommitedEvents = loader.GetUncommittedChanges(); _eventStack = new Stack <LoadedEvent>(uncommitedEvents.Reverse()); } }
public async Task SaveAsync(TAggregateRoot aggregate) { IAggregateLoader loader = aggregate; var changes = loader.GetUncommittedChanges(); if (changes.Any()) { var streamName = GetStreamName(aggregate.GetIdentifier()); await _eventStore.SaveEventsAsync(streamName, aggregate.Version, changes); loader.MarkChangesAsCommitted(); } }