public void PrintAllWithParent(EmployeeComponent parent) { List <EmployeeComponent> employeesList = new List <EmployeeComponent>(); _output.Print($"There are all subordinates of {parent}"); foreach (EmployeeComponent employeeComponent in parent.FindAllSubOrdinate()) { _output.Print(employeeComponent.ToString()); } }
public List <EmployeeComponent> FindAllSubOrdinate(List <EmployeeComponent> subOrdinateList = null) { if (subOrdinateList == null) { subOrdinateList = new List <EmployeeComponent>(); } IEnumerator iterator = CreateIterator(); bool hasNext = iterator.MoveNext(); while (hasNext) { EmployeeComponent employee = (EmployeeComponent)iterator.Current; subOrdinateList.Add(employee); subOrdinateList = employee.FindAllSubOrdinate(subOrdinateList); hasNext = iterator.MoveNext(); } return(subOrdinateList); }