public EventStream GetStreamForAggregate(Guid aggregateId) { var streamName = GetStreamNameFormAggregateId(aggregateId); var serializedEvents = _connection.ReadStreamEventsForwardAsync(streamName, 0, 1000, false, _credentials).GetAwaiter().GetResult(); var deserializeEvents = new EventStream(aggregateId); if (serializedEvents.Status == SliceReadStatus.StreamNotFound || serializedEvents.Status == SliceReadStatus.StreamDeleted) { return(deserializeEvents); } foreach (var serializedEvent in serializedEvents.Events) { var deserializedEvent = DeserializedEvent(serializedEvent); deserializeEvents.AppendEventToStream(deserializedEvent); } return(deserializeEvents); Type GetTypeFromName(string typeName) { return(Type.GetType(typeName)); } IEvent DeserializedEvent(ResolvedEvent serializedEvent) { var eventType = GetTypeFromName(serializedEvent.Event.EventType); return(_eventSerializer.Deserialize(serializedEvent)); } }