Beispiel #1
0
 protected override async Task <IImmutableList <Exception> > WriteMessagesAsync(IEnumerable <Akka.Persistence.AtomicWrite> messages)
 {
     using (var dc = new ApplicationDbContext())
     {
         foreach (Akka.Persistence.AtomicWrite atomicWrite in messages)
         {
             foreach (var message in (IEnumerable <IPersistentRepresentation>)atomicWrite.Payload)
             {
                 var item = new AkkaStorageItem
                 {
                     PayloadJson   = JsonConvert.SerializeObject(message.Payload),
                     PersistenceId = message.PersistenceId,
                     SequenceNr    = message.SequenceNr,
                     Manifest      = message.Manifest,
                     Path          = message.Sender?.Path?.ToString(),
                     WriterGuid    = message.WriterGuid,
                     IsDeleted     = message.IsDeleted,
                     PayloadType   = message.Payload.GetType().AssemblyQualifiedName
                 };
                 dc.AkkaStorageItems.Add(item);
             }
             await dc.SaveChangesAsync();
         }
     }
     return(null);
 }
        public SqlPersistentRepresentation(AkkaStorageItem item, IActorContext context)
        {
            var payloadType = Type.GetType(item.PayloadType);

            Payload       = JsonConvert.DeserializeObject(item.PayloadJson, payloadType);
            Manifest      = item.Manifest;
            PersistenceId = item.PersistenceId;
            SequenceNr    = item.SequenceNr;
            WriterGuid    = item.WriterGuid;
            Sender        = context.ActorSelection(item.Path)?.Anchor;
        }