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 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()); }