private Persistent ToPersistenceRepresentation(JournalRepresentation entry, IActorRef sender, IDictionary <string, object> metaData) { var isDeleted = false; var property = entry.Payload.GetType().GetProperty(MetaDataPropertyName, BindingFlags.Instance | BindingFlags.NonPublic); if (property != null) { var meta = property.GetValue(entry.Payload) as IDictionary <string, object>; if (meta != null && metaData != null) { // Copy meta data foreach (var item in metaData) { meta[item.Key] = item.Value; if (item.Key == IsDeletedEvent) { if (!bool.TryParse(item.Value.ToString(), out isDeleted)) { isDeleted = false; } } } } } return(new Persistent( entry.Payload, entry.SequenceNr, entry.PersistenceId, entry.Manifest, isDeleted, sender)); }
private static JournalRepresentation ToJournalEntry(IPersistentRepresentation message) { var jornalEntry = new JournalRepresentation { //Id = message.PersistenceId + "_" + message.SequenceNr, //IsDeleted = message.IsDeleted, Payload = message.Payload, PersistenceId = message.PersistenceId, SequenceNr = message.SequenceNr, Manifest = message.Manifest, Tags = null }; if (message.Payload is Tagged) { var tagged = (Tagged)message.Payload; //message.WithPayload(tagged.Payload); jornalEntry.Payload = tagged.Payload; if (tagged.Tags.Count != 0) { jornalEntry.Tags = tagged.Tags.ToArray(); } } return(jornalEntry); }