private int FindPositionIndexOf(IBusinessObject businessObject) { NodeState nodeState = GetBusinessObjectNodeState(businessObject); ITreeNode parentNode = nodeState.ParentNode; IBusinessObjectCollection businessObjectCollection = GetNodeCollection(parentNode); if (businessObjectCollection == null) { return(0); } int proposedIndex = businessObjectCollection.IndexOf(businessObject); int actualIndex = 0; for (int i = 0; i < proposedIndex; i++) { IBusinessObject nodeBo = businessObjectCollection[i]; NodeState boNodeState = GetBusinessObjectNodeState(nodeBo); if (boNodeState.IsConnected()) { actualIndex++; } } return(actualIndex); }