Example #1
0
        private void ConfirmRequest(PersistOnEventRequest request)
        {
            if (request.PersistOnEventId.HasValue)
            {
                this.requestsByEventId.Remove(request.PersistOnEventId.Value);
            }

            this.requestsBySequenceNr.Remove(request.PersistOnEventSequenceNr);
        }
Example #2
0
 internal override void SnapshotLoaded(Snapshot snapshot)
 {
     base.SnapshotLoaded(snapshot);
     foreach (var pr in snapshot.PersistOnEventRequests)
     {
         var requestWithUpdatedInstanceId = new PersistOnEventRequest(pr.PersistOnEventSequenceNr, pr.PersistOnEventId, pr.Invocations, InstanceId);
         requestsBySequenceNr[pr.PersistOnEventSequenceNr] = requestWithUpdatedInstanceId;
         if (pr.PersistOnEventId.HasValue)
         {
             requestsByEventId[pr.PersistOnEventId.Value] = requestWithUpdatedInstanceId;
         }
     }
 }
Example #3
0
        private void DeliverRequest(PersistOnEventRequest request)
        {
            this.requestsBySequenceNr[request.PersistOnEventSequenceNr] = request;
            if (request.PersistOnEventId.HasValue)
            {
                this.requestsByEventId[request.PersistOnEventId.Value] = request;
            }

            if (!IsRecovering)
            {
                Self.Tell(request);
            }
        }
Example #4
0
        private bool TryFindPersistOnEventRequest(DurableEvent e, out PersistOnEventRequest request)
        {
            if (e.PersistOnEventId.HasValue && this.requestsByEventId.TryGetValue(e.PersistOnEventId.Value, out request))
            {
                return(true);
            }

            if (e.PersistOnEventSequenceNr.HasValue && this.requestsBySequenceNr.TryGetValue(e.PersistOnEventSequenceNr.Value, out request))
            {
                return(true);
            }

            request = default;
            return(false);
        }
Example #5
0
 public Snapshot AddPersistOnEventRequest(PersistOnEventRequest persistOnEventRequest) =>
 new Snapshot(Payload, EmitterId, LastEvent, CurrentTime, SequenceNr, DeliveryAttempts, PersistOnEventRequests.Add(persistOnEventRequest));