public Employee GetManagerFor(Employee employee)
        {
            IList<Employee> managerList = EmployeeRepository.GetManagerList();
            View.ShowListOfManagers(managerList);

            View.ShowEmployee(employee);

            View.Run();

            return SelectedManager;
        }
 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 EmployeeSelected(Employee selectedEmployee)
 {
     EmployeeDetailPresenter.ShowSelectedEmployee(selectedEmployee);
 }
 public void ManagerSelected(Employee manager)
 {
     SelectedManager = manager;
 }
 private TreeNode GetNode(Employee employee)
 {
     TreeNode node = new TreeNode(employee.DisplayName);
     node.Tag = employee;
     return node;
 }
 public void ShowSelectedEmployee(Employee employee)
 {
     View.DisplayEmployeeName(employee.FirstName, employee.LastName);
     View.DisplayEmployeeEmail(employee.Email);
 }