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 ToDomainEventUsing(
     this string serializedDomainEventData,
     EventMetaData eventMetaData)
 {
     try
     {
         return((IDomainEvent)JsonConvert
                .DeserializeObject(
                    serializedDomainEventData,
                    Type.GetType(eventMetaData.FullEventType)));
     }
     catch (Exception ex)
     {
         throw new EventDeserializationException(serializedDomainEventData, ex);
     }
 }
        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);
            }
        }