public string EventName(IDomainEventData eventData) { return(_eventTypeLocator.GetTypeString(eventData.GetType())); }
public string SerializeToData(IDomainEventData eventData) { var eventType = eventData.GetType(); return(JsonSerializer.Serialize(eventData, eventType)); }
public IDomainEvent <IDomainEventData> CreateEvent(ulong version, Instant created, IDomainEventData eventData) { var eventType = eventData.GetType(); var id = Guid.NewGuid(); var eventName = EventName(eventData); var domainEventContainerType = typeof(DomainEvent <>).MakeGenericType(eventType); return((IDomainEvent <IDomainEventData>)Activator.CreateInstance(domainEventContainerType, args: new object[] { id, version, eventData, eventName, created })); }