public DbEvent(IDomainEvent @event, IEventSerializer eventSerializer, IEventStamping eventStamping) { if (eventSerializer == null) { throw new ArgumentNullException(nameof(eventSerializer)); } if (eventStamping == null) { throw new ArgumentNullException(nameof(eventStamping)); } var eventType = @event.GetType(); AggregateId = @event.AggregateId; Sequence = @event.Sequence; EventName = eventType.Name; TimeStamp = eventStamping.GetDateTime(); User = eventStamping.GetCurrentUser(); Data = eventSerializer.Serialize(@event); }