Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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]);
        }
Esempio n. 4
0
        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();
        }