Beispiel #1
0
        public EventDocument Serialize(IUncommittedEvent eventToSerialize)
        {
            var id        = eventToSerialize.Metadata.GetValue(MetadataKeys.EventId, value => Guid.Parse(value.ToString()));
            var eventType = eventToSerialize.Metadata.GetValue(MetadataKeys.EventName, value => value.ToString());
            var timestamp = eventToSerialize.Metadata.GetValue(MetadataKeys.Timestamp, value => (DateTime)value);

            var dataJson     = JsonSerializer.Serialize(eventToSerialize.Data, eventToSerialize.Data.GetType(), JsonSettings);
            var metadataJson = JsonSerializer.Serialize(eventToSerialize.Metadata, JsonSettings);

            var @event = new EventDocument
            {
                Id        = id,
                Timestamp = timestamp,
                EventType = eventType,
                Version   = eventToSerialize.Version,
                EventData = BsonDocument.Parse(dataJson),
                Metadata  = BsonDocument.Parse(metadataJson)
            };

            return(@event);
        }
Beispiel #2
0
 private static ICommittedEvent InstantiateCommittedEvent(IUncommittedEvent serializedEvent)
 {
     return(new InMemoryCommittedEvent(serializedEvent.AggregateId, serializedEvent.Version, serializedEvent.Data, serializedEvent.Metadata));
 }