private void ConfirmRequest(PersistOnEventRequest request) { if (request.PersistOnEventId.HasValue) { this.requestsByEventId.Remove(request.PersistOnEventId.Value); } this.requestsBySequenceNr.Remove(request.PersistOnEventSequenceNr); }
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; } } }
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); } }
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); }
public Snapshot AddPersistOnEventRequest(PersistOnEventRequest persistOnEventRequest) => new Snapshot(Payload, EmitterId, LastEvent, CurrentTime, SequenceNr, DeliveryAttempts, PersistOnEventRequests.Add(persistOnEventRequest));