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); }