Example #1
0
 public EventProcessContext(QueueMessage queueMessage, EventMessage eventMessage, Action<EventStream, EventProcessContext> eventProcessedAction)
 {
     QueueMessage = queueMessage;
     EventMessage = eventMessage;
     EventProcessedAction = eventProcessedAction;
 }
Example #2
0
        private EventMessage ConvertToData(IDictionary<string, string> contextItems, EventStream eventStream)
        {
            var data = new EventMessage();

            data.CommitId = eventStream.CommitId;
            data.AggregateRootId = eventStream.AggregateRootId;
            data.AggregateRootTypeCode = eventStream.AggregateRootTypeCode;
            data.Timestamp = eventStream.Timestamp;
            data.Version = eventStream.Version;
            data.ContextItems = contextItems;

            foreach (var evnt in eventStream.Events)
            {
                var typeCode = _eventTypeCodeProvider.GetTypeCode(evnt.GetType());
                var eventData = _binarySerializer.Serialize(evnt);
                data.Events.Add(new EventEntry(typeCode, eventData));
            }

            return data;
        }
Example #3
0
        private EventStream ConvertToEventStream(EventMessage data)
        {
            var events = new List<IDomainEvent>();

            foreach (var typeData in data.Events)
            {
                var eventType = _eventTypeCodeProvider.GetType(typeData.EventTypeCode);
                var evnt = _binarySerializer.Deserialize(typeData.EventData, eventType) as IDomainEvent;
                events.Add(evnt);
            }

            return new EventStream(data.CommitId, data.AggregateRootId, data.AggregateRootTypeCode, data.Version, data.Timestamp, events);
        }