internal Event ToEvent(IEventContentTypeResolver eventContentTypeResolver, IEventContentSerializer contentSerializer) { var ct = new EventContentType(TypeAssemblyName, TypeNamespace, TypeName); var t = eventContentTypeResolver.Resolve(ct); return(Event.From( EventId.From(Id), Rill.Sequence.From(Sequence), Rill.Timestamp.From(Timestamp.UtcDateTime), contentSerializer.Deserialize(Content, t))); }
internal static RillEventEntity From(RillCommit commit, Event e, IEventContentSerializer contentSerializer) { var ct = EventContentType.From(e.Content.GetType()); return(new RillEventEntity( (Guid)e.Id, (Guid)commit.Id, ct.AssemblyName, ct.Namespace, ct.Name, (long)e.Sequence, (DateTime)e.Timestamp, contentSerializer.Serialize(e.Content))); }
public Type Resolve(EventContentType type) => Type.GetType($"{type.Namespace}.{type.Name}, {type.AssemblyName}", false, true) ?? throw new TypeLoadException($"Could not load type for event content type: '{type}'.");