void AddMetaData(IEvent @event, BsonDocument eventDocument) { var eventType = @event.GetType(); var logicalEventType = _eventMigrationHierarchyManager.GetLogicalTypeForEvent(eventType); var migrationLevel = _eventMigrationHierarchyManager.GetCurrentMigrationLevelForLogicalEvent(logicalEventType); eventDocument[EventType] = string.Format("{0}, {1}", eventType.FullName, eventType.Assembly.GetName().Name); eventDocument[LogicalEventType] = string.Format("{0}, {1}", logicalEventType.FullName, logicalEventType.Assembly.GetName().Name); eventDocument[Generation] = migrationLevel; }
public bool BeforeStore(string key, object entityInstance, RavenJObject metadata, RavenJObject original) { var eventType = entityInstance.GetType(); if (!eventType.HasInterface <IEvent>()) { return(false); } var logicalEventType = _eventMigrationHierarchyManager.GetLogicalTypeForEvent(eventType); var migrationLevel = _eventMigrationHierarchyManager.GetCurrentMigrationLevelForLogicalEvent(logicalEventType); metadata[Generation] = migrationLevel; metadata[LogicalEventType] = string.Format("{0}, {1}", logicalEventType.FullName, logicalEventType.Assembly.GetName().Name); return(false); }
public EventMetaData GetMetaDataFor(IEvent @event) { var eventType = @event.GetType(); if (!_cachedEventMetaData.Keys.Contains(eventType)) { var logicalEventType = _eventMigrationHierarchyManager.GetLogicalTypeForEvent(eventType); var migrationLevel = _eventMigrationHierarchyManager.GetCurrentMigrationLevelForLogicalEvent(logicalEventType); var name = string.Format("{0}, {1}", logicalEventType.FullName, logicalEventType.Assembly.GetName().Name); _cachedEventMetaData.Add(eventType, new EventMetaData { Generation = migrationLevel, LogicalName = name }); } return(_cachedEventMetaData[eventType]); }
public void ToEventHolder(EventHolder eventHolder, IEvent @event) { var eventType = @event.GetType(); var logicalEventType = _eventMigrationHierarchyManager.GetLogicalTypeForEvent(eventType); var generation = _eventMigrationHierarchyManager.GetCurrentMigrationLevelForLogicalEvent(logicalEventType); var eventSourceName = GetEventSourceFromEvent(@event); eventHolder.Id = @event.Id; eventHolder.CommandName = @event.CommandName; eventHolder.Name = @event.Name; eventHolder.AggregateId = @event.EventSourceId; eventHolder.EventSource = eventSourceName; eventHolder.SerializedEvent = _serializer.ToJson(@event); eventHolder.LogicalEventName = logicalEventType.Name; eventHolder.Generation = generation; eventHolder.CausedBy = @event.CausedBy; eventHolder.Origin = @event.Origin; eventHolder.Occured = @event.Occured; eventHolder.Version = @event.Version.Combine(); }