private bool HasCurrentActivityBeforeActivity(WorkflowActivityInput input, WorkflowDefinition definition, IWorkflowActivityBase activity, List<WorkflowTransition> checkedTransitions) { var inboundTransitions = definition.GetInboundTransitions(activity); if (inboundTransitions.Any(t => input.Instance.CurrentActivityIds.Contains(t.From))) return true; checkedTransitions.AddRange(inboundTransitions); foreach (var transition in inboundTransitions) { if (HasCurrentActivityBeforeActivity(input, definition, definition.GetActivityById(transition.From), checkedTransitions)) return true; } return false; }
private bool HasCurrentActivityBeforeActivity(WorkflowActivityInput input, WorkflowDefinition definition, IWorkflowActivityBase activity, List <WorkflowTransition> checkedTransitions) { var inboundTransitions = definition.GetInboundTransitions(activity); if (inboundTransitions.Any(t => input.Instance.CurrentActivityIds.Contains(t.From))) { return(true); } checkedTransitions.AddRange(inboundTransitions); foreach (var transition in inboundTransitions) { if (HasCurrentActivityBeforeActivity(input, definition, definition.GetActivityById(transition.From), checkedTransitions)) { return(true); } } return(false); }