public override string[] EvaulateOutgoingPaths(Definition definition, IsFlowValid isFlowValid, ProcessVariablesContainer variables) { string ret = null; foreach (string str in Outgoing) { if ((Default == null ? "" : Default) != str) { SequenceFlow sf = (SequenceFlow)definition.LocateElement(str); if (sf.IsFlowValid(isFlowValid, variables)) { ret = sf.id; break; } } } return(ret == null ? (this.Default == null ? null : new string[] { Default }) : new string[] { ret }); }
public bool IsFlowValid(IsFlowValid isFlowValid, ProcessVariablesContainer variables) { Log.Debug("Checking if Sequence Flow[{0}] is valid", new object[] { id }); bool ret = isFlowValid(this, variables); if (ExtensionElement != null) { ExtensionElements ee = (ExtensionElements)ExtensionElement; if (ee.Children != null) { foreach (IElement ie in ee.Children) { if (ie is ConditionSet) { ret = ret & ((ConditionSet)ie).Evaluate(variables); } } } } return(ret); }
public override string[] EvaulateOutgoingPaths(Definition definition, IsFlowValid isFlowValid, ProcessVariablesContainer variables) { List <string> ret = new List <string>(); foreach (string str in Outgoing) { SequenceFlow sf = (SequenceFlow)definition.LocateElement(str); if (sf.IsFlowValid(isFlowValid, variables)) { ret.Add(sf.id); } } if (ret.Count == 0) { if (Default != null) { ret.Add(Default); } } return(ret.Count == 0 ? null : ret.ToArray()); }
public abstract string[] EvaulateOutgoingPaths(Definition definition, IsFlowValid isFlowValid, ProcessVariablesContainer variables);
public override string[] EvaulateOutgoingPaths(Definition definition, IsFlowValid isFlowValid, ProcessVariablesContainer variables) { return(Outgoing); }