示例#1
0
        private void Save(IEvent @event, DateTime enqueueTime)
        {
            var message = new MessageLogEntity
            {
                Payload = this.serializer.Serialize(@event),
                PartitionKey = enqueueTime.ToString("yyyMM"),
                RowKey = enqueueTime.Ticks.ToString("D20") + "_" + @event.GetHashCode(),
                MessageId = Guid.NewGuid().ToString(),
                CorrelationId = Guid.NewGuid().ToString(),
            };

            foreach (var metadata in this.metadata.GetMetadata(@event))
            {
                message.GetType().GetProperty(metadata.Key).SetValue(message, metadata.Value, null);
            }

            this.writer.Save(message);
        }