public async Task <IEnumerable <Event> > LoadEvents(Guid id, long version = 0) { var universeEvent = new UniverseEvent { AggrategateId = id }; if (_eventsByAggregate.ContainsKey(universeEvent) == false) { return(await Task.FromResult(new Event[0])); } return(_eventsByAggregate[universeEvent]); }
public async Task Store(AggregateRoot aggreagate) { var es = aggreagate.UncommittedEvents.ToList(); var universeEvent = new UniverseEvent { AggrategateId = aggreagate.Id }; if (_eventsByAggregate.ContainsKey(universeEvent)) { _eventsByAggregate[universeEvent].AddRange(es); } else { _eventsByAggregate[universeEvent] = es; } await _bus.Publish(es); }