示例#1
0
        /*
         * public AirflowNode GetNextNode(AirflowNode currentNode)
         * {
         *  String nextNodeName = currentNode.GetNextNodeName();
         *  AirflowNode foundNode = Array.Find<AirflowNode>(path, s => s != null && s.Name.Equals(nextNodeName));
         *
         *  if((nextNodeName.Equals(endPoint.Name) && path.Count<AirflowNode>() < 5)
         || foundNode != null)
         || {
         ||     nextNodeName = currentNode.GetNextNodeName();
         || }
         ||
         || AirflowNode nextNode = null;
         ||
         || foreach(AirflowNode node in nodes)
         || {
         ||     if(node.Name.Equals(nextNodeName))
         ||     {
         ||         nextNode = node;
         ||         break;
         ||     }
         || }
         ||
         || return nextNode;
         ||}
         */

        public AirflowNode GetNextNode(AirflowNode currentNode)
        {
            String      nextNodeName = currentNode.GetNextNodeName();
            AirflowNode foundNode    = new AirflowNode();

            while (foundNode != null)
            {
                try
                {
                    foundNode = path.Find(s => s != null && s.Name.Equals(nextNodeName));
                    if (foundNode != null ||
                        ((nextNodeName.Equals(endPoint.Name) && path.Count <AirflowNode>() < 5)))
                    {
                        nextNodeName = currentNode.GetNextNodeName();
                        foundNode    = new AirflowNode();
                    }
                }
                catch (Exception e)
                { }
            }

            AirflowNode nextNode = null;

            if (nextNodeName != null)
            {
                foreach (AirflowNode node in nodes)
                {
                    if (node.Name.Equals(nextNodeName))
                    {
                        nextNode = node;
                        break;
                    }
                }
            }

            return(nextNode);
        }