private IDomainEvent Deserialize(DomainEventEntity @event) { var type = Type.GetType(@event.DomainEventTypeName); var result = this.serializer.Deserialize(@event.Payload, type); return(result as IDomainEvent); }
private DomainEventEntity Serialize(IDomainEvent @event) { var versionedEventType = @event.GetType().AssemblyQualifiedName; var payload = this.serializer.Serialize <string>(@event); var serialized = new DomainEventEntity { AggregateId = @event.SourceId, AggregateType = sourcedTypeName, Version = @event.Version, DomainEventTypeName = versionedEventType, Payload = payload, CorrelationId = @event.CorrelationId }; return(serialized); }