public static IAggregateEventResult Flatten(this IAggregateEventResult aggregateEventResult) { var result = new List <IEventResult>(); AddEventResultsToList(aggregateEventResult, result); return(new AggregateEventResult(result)); }
private static void AddEventResultsToList(IAggregateEventResult aggregateEventResult, List <IEventResult> list) { foreach (var eventResult in aggregateEventResult.EventResults) { if (eventResult is IAggregateEventResult innerAggregateEventResult) { AddEventResultsToList(innerAggregateEventResult, list); } else { list.Add(eventResult); } } }
public EventDispatchResult(IAggregateEventResult eventResult) { EventResult = eventResult; }