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