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);
        }