object DeserializeDomainEvent(IPersistedRawEvent rawEvent, IReadOnlyDictionary <string, object> metadata) { // try loading the type from the registry var clrType = _registry.GetClrType(rawEvent.EventType); // if it fails, try loading the metadata if (clrType == null && metadata != null) { object clrTypeName; if (metadata.TryGetValue(Constants.ClrTypeMetadataKey, out clrTypeName)) { var s = clrTypeName as string; if (s != null) { clrType = Type.GetType(s, false, true); } } } // if no type was found, the serializer should use its default type var domainEvent = _serializer.DeserializeEvent(rawEvent.Payload, rawEvent.PayloadFormat, clrType); return(domainEvent); }
public IPersistedEvent CreateEvent(IPersistedRawEvent rawEvent) { var e = Substitute.For <IPersistedEvent>(); e.GlobalSequence.Returns(rawEvent.GlobalSequence); return(e); }
public IPersistedEvent CreateEvent(IPersistedRawEvent rawEvent) { var e = Substitute.For<IPersistedEvent>(); e.GlobalSequence.Returns(rawEvent.GlobalSequence); return e; }
public IPersistedStreamEvent CreateStreamEvent(IPersistedRawEvent rawEvent, int streamSequence) { var metadata = _serializer.DeserializeMetadata(rawEvent.Metadata); var domainEvent = DeserializeDomainEvent(rawEvent, metadata); var t = typeof(ReadStreamEvent <>).MakeGenericType(domainEvent.GetType()); return((IPersistedStreamEvent)Activator.CreateInstance(t, rawEvent, metadata, domainEvent, streamSequence)); }
public ReadEvent(IPersistedRawEvent rawEvent, IReadOnlyDictionary <string, object> metadata, T domainEvent) { this.GlobalSequence = rawEvent.GlobalSequence; this.EventID = rawEvent.EventID; this.Stream = rawEvent.Stream; this.EventType = rawEvent.EventType; this.UtcTimestamp = rawEvent.UtcTimestamp; this.Metadata = metadata; this.DomainEvent = domainEvent; }
public IPersistedStreamEvent CreateStreamEvent(IPersistedRawEvent rawEvent, int streamSequence) { var e = Substitute.For <IPersistedStreamEvent>(); e.GlobalSequence.Returns(rawEvent.GlobalSequence); e.Stream.Returns(rawEvent.Stream); e.StreamSequence.Returns(streamSequence); return(e); }
public IPersistedStreamEvent CreateStreamEvent(IPersistedRawEvent rawEvent, int streamSequence) { var e = Substitute.For<IPersistedStreamEvent>(); e.GlobalSequence.Returns(rawEvent.GlobalSequence); e.Stream.Returns(rawEvent.Stream); e.StreamSequence.Returns(streamSequence); return e; }
public ReadStreamEvent(IPersistedRawEvent rawEvent, IReadOnlyDictionary <string, object> metadata, T domainEvent, int streamSequence) : base(rawEvent, metadata, domainEvent) { this.StreamSequence = streamSequence; }