protected override async Task ProtectedProcess(CMMNExecutionContext executionContext, TimerEventListener elt, CancellationToken cancellationToken) { if (elt.NbOccurrence == 0) { var subExists = (await SubscriberRepository.Get(executionContext.CasePlanInstance.AggregateId, elt.Id, CMMNConstants.ExternalTransitionNames.Occur, cancellationToken) != null); if (!subExists) { await Init(executionContext, elt, cancellationToken); return; } } var subscription = await TrySubscribe(executionContext, elt, CMMNConstants.ExternalTransitionNames.Occur, cancellationToken); if (subscription.IsCaptured) { executionContext.CasePlanInstance.MakeTransition(elt, CMMNTransitions.Occur); } }
protected override async Task ProtectedProcess(CMMNExecutionContext executionContext, CaseEltInstance elt, CancellationToken cancellationToken) { if (elt.NbOccurrence == 0) { var subExists = (await SubscriberRepository.Get(executionContext.Instance.AggregateId, elt.Id, CMMNConstants.ExternalTransitionNames.Occur, cancellationToken) != null); if (!subExists) { await Init(executionContext, elt, cancellationToken); return; } } var subscription = await TrySubscribe(executionContext, elt, CMMNConstants.ExternalTransitionNames.Occur, cancellationToken); if (subscription.IsCaptured) { var sub = await TryReset(executionContext, elt, CMMNConstants.ExternalTransitionNames.Occur, cancellationToken); executionContext.Instance.MakeTransition(elt, CMMNTransitions.Occur, incomingTokens: MergeParameters(executionContext, sub.Parameters)); } }