/// <summary> /// Finds a node with a given ActivityId in provided set of nodes. Recursively walks the set of nodes and their children. /// </summary> /// <param name="sourceId"> /// Identifier of the source of the record. /// </param> /// <param name="activityId"> /// ActivityId to search for. /// </param> /// <param name="listWhereFound"> /// Receives reference to the List where the found node was located, or null if no suitable node was found. /// </param> /// <param name="indexWhereFound"> /// Receives the index into listWhereFound that indicating where in the list the node was located, or -1 if /// no suitable node was found. /// </param> /// <returns> /// The found node, or null if no suitable node was located. /// </returns> private ProgressNode FindNodeById(long sourceId, int activityId, out List <ProgressNode> listWhereFound, out int indexWhereFound) { listWhereFound = null; indexWhereFound = -1; FindByIdNodeVisitor v = new FindByIdNodeVisitor(sourceId, activityId); NodeVisitor.VisitNodes(_topLevelNodes, v); listWhereFound = v.ListWhereFound; indexWhereFound = v.IndexWhereFound; return(v.FoundNode); }
FindNodeById(Int64 sourceId, int activityId, out ArrayList listWhereFound, out int indexWhereFound) { listWhereFound = null; indexWhereFound = -1; FindByIdNodeVisitor v = new FindByIdNodeVisitor(sourceId, activityId); NodeVisitor.VisitNodes(_topLevelNodes, v); listWhereFound = v.ListWhereFound; indexWhereFound = v.IndexWhereFound; #if DEBUG || ASSERTIONS_TRACE if (v.FoundNode == null) { Dbg.Assert(listWhereFound == null, "list should be null when no node found"); Dbg.Assert(indexWhereFound == -1, "index should indicate no node found"); } #endif return(v.FoundNode); }
FindNodeById(Int64 sourceId, int activityId, out ArrayList listWhereFound, out int indexWhereFound) { listWhereFound = null; indexWhereFound = -1; FindByIdNodeVisitor v = new FindByIdNodeVisitor(sourceId, activityId); NodeVisitor.VisitNodes(_topLevelNodes, v); listWhereFound = v.ListWhereFound; indexWhereFound = v.IndexWhereFound; #if DEBUG || ASSERTIONS_TRACE if (v.FoundNode == null) { Dbg.Assert(listWhereFound == null, "list should be null when no node found"); Dbg.Assert(indexWhereFound == -1, "index should indicate no node found"); } #endif return v.FoundNode; }