public static IDomainEvent ToDomainEvent(this RecordedEvent recordedEvent)
        {
            var serializedEventString = Encoding.UTF8.GetString(recordedEvent.Data);
            var eventMetaData         = EventMetaData.EventMetaDataFrom(recordedEvent);

            return(serializedEventString.ToDomainEventUsing(eventMetaData));
        }
        public static IDomainEvent ToDomainEvent(this RecordedEvent recordedEvent)
        {
            var serializedEventString = Encoding.UTF8.GetString(recordedEvent.Data);
            var eventMetaData         = EventMetaData.EventMetaDataFrom(recordedEvent);

            try
            {
                return((IDomainEvent)JsonConvert
                       .DeserializeObject(
                           serializedEventString,
                           Type.GetType(eventMetaData.FullEventType)));
            }
            catch (Exception ex)
            {
                throw new EventDeserializationException(
                          recordedEvent.EventType,
                          serializedEventString,
                          recordedEvent.EventNumber,
                          ex);
            }
        }