Beispiel #1
0
        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 });
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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());
        }
Beispiel #4
0
 public abstract string[] EvaulateOutgoingPaths(Definition definition, IsFlowValid isFlowValid, ProcessVariablesContainer variables);
Beispiel #5
0
 public override string[] EvaulateOutgoingPaths(Definition definition, IsFlowValid isFlowValid, ProcessVariablesContainer variables)
 {
     return(Outgoing);
 }