private IList<Employee> GetSubEmployees(Employee manager)
 {
     IList<Employee> flattenedList = new List<Employee>();
     foreach (Employee employee in manager.Employees)
     {
         flattenedList.Add(employee);
         IList<Employee> subEmployees = GetSubEmployees(employee);
         foreach(Employee subEmployee in subEmployees)
             flattenedList.Add(subEmployee);
     }
     return flattenedList;
 }
 private IList<TreeNode> GetChildren(Employee employee)
 {
     IList<TreeNode> nodes = new List<TreeNode>();
     foreach(Employee child in employee.Employees)
     {
         TreeNode node = GetNode(child);
         IList<TreeNode> children = GetChildren(child);
         foreach (TreeNode childNode in children)
             node.Nodes.Add(childNode);
         nodes.Add(node);
     }
     return nodes;
 }
        public void Run()
        {
            Result<EmployeeInfo> result = GetNewEmployeeInfo.Get();
            if (result.ServiceResult == ServiceResult.Ok)
            {
                EmployeeInfo info = result.Data;
                Employee employee = new Employee(info.FirstName, info.LastName, info.Email);

                Employee manager = GetEmployeeManager.GetManagerFor(employee);
                manager.Employees.Add(employee);

                EventPublisher.Publish(new EmployeeAddedEvent());
            }
        }
 private TreeNode GetNode(Employee employee)
 {
     TreeNode node = new TreeNode(employee.DisplayName);
     node.Tag = employee;
     return node;
 }
 public void ShowEmployee(Employee employee)
 {
     Employee.Text = employee.DisplayName;
 }