Exemple #1
0
        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));
        }
Exemple #2
0
        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);
        }