public IEvent DeserializeEvent(Dictionary <string, string> headerData, string eventData) { var header = new EventHeader(headerData); Type type = eventTypeResolver.ResolveType(header); var result = JsonConvert.DeserializeObject(eventData, type, SerializerSettings) as IEvent; result?.Headers.ApplyEventHeader(header); return(result); }
public virtual IEvent DeserializeEvent(Dictionary <string, string> headerData, string eventData) { var header = new EventHeader(headerData); Type type = eventTypeResolver.ResolveType(header); IEvent result = DeserializeEventInternal(eventData, type); result?.Headers.ApplyEventHeader(header); return(result); }
public object Deserialize(JObject obj, string eventName) { var eventType = _typeResolver.ResolveType(eventName); var reader = obj.CreateReader(); var theEvent = _serializer.Deserialize(reader, eventType); return(theEvent); }
public ISourcedEvent Deserialize(StoredEvent <JObject> obj) { var eventType = _typeResolver.ResolveType(obj.EventName); var reader = obj.Data.CreateReader(); var theEvent = (ISourcedEvent)_serializer.Deserialize(reader, eventType); theEvent.InitializeFrom(obj); return(theEvent); }
/// <summary> /// Upgrades an event to the latest version. /// </summary> /// <remarks> /// <para>This checks to see if an <see cref="IEventConverter"/> has been added for <see cref="StoredEvent{T}.EventName"/>.</para> /// <para>If there is an event converter for this event then that converter will be used to upgrade the event.</para> /// <para>If no converter has been added for this event then the event will be left un-modified.</para> /// </remarks> /// <param name="theEvent">The event to be upgraded.</param> /// <exception cref="ArgumentNullException">If <paramref name="theEvent"/> is <value>null</value>.</exception> /// <seealso cref="AddConverter"/> public void Upgrade(StoredEvent <JObject> theEvent) { IEventConverter converter; Type eventType = _typeResolver.ResolveType(theEvent.EventName); if (_converters.TryGetValue(eventType, out converter)) { converter.Upgrade(theEvent); } }
public ISourcedEvent Deserialize(StoredEvent <JObject> obj) { var eventType = _typeResolver.ResolveType(obj.EventName); var reader = obj.Data.CreateReader(); var theEvent = (ISourcedEvent)_serializer.Deserialize(reader, eventType); //json deserialization doesn't seem to restore the EntityId for sourced enetity events SetEntityIdIfEntityEvent(obj, theEvent); theEvent.InitializeFrom(obj); return(theEvent); }