示例#1
0
        static void Main(string[] args)
        {
            Employee bill = new Employee("Bill", "Mason");
            Employee sam = new Employee("Sam", "Garner");
            Employee fred = new Employee("Fred", "Gallagher");
            Employee jane = new Employee("Jane", "Faucet");
            Employee alice = new Employee("Alice", "Moreau");

            bill.Minions.Add(sam);
            bill.Minions.Add(fred);
            bill.Minions.Add(jane);
            sam.DirectBoss = bill;
            fred.DirectBoss = bill;
            jane.DirectBoss = bill;

            fred.Minions.Add(alice);
            alice.DirectBoss = fred;

            bill.PrintEmployeeInfo();
            sam.PrintEmployeeInfo();
            fred.PrintEmployeeInfo();
            jane.PrintEmployeeInfo();
            alice.PrintEmployeeInfo();

            Console.ReadLine();             //pause
        }
示例#2
0
        static void Main(string[] args)
        {
            var sam = new Employee("sam");
            var bill = new Employee("bill");
            var fred = new Employee("fred");
            var jane = new Employee("jane");
            var alice = new Employee("alice");

            var employees = new List<Employee>
            {
                bill,
                sam,
                jane,
                fred,
                alice
            };

            sam.Supervisor = bill;
            fred.Supervisor = bill;
            jane.Supervisor = bill;

            alice.Supervisor = fred;

            foreach (var emp in employees)
            {
                Console.WriteLine("{0} has {1} minions. \n{0} reports to {2}", emp.Name, emp.ReportCount, emp.Supervisor == null ? "nobody" : emp.Supervisor.Name);
            }

            Console.WriteLine("{0} has {1}", bill.Name, bill.ReportCount);
            Console.ReadLine();
        }
示例#3
0
        static void DisplayOrgChart(Employee employee, int level=0)
        {

            //RECURSION
            //indent
            for (var i = 0; i < level; i++)
            {
                Console.Write("---");
                //Console.Write() writes contents on the same line instead of all new lines
            }
            //show name and report count
            Console.WriteLine("{0} has the following {1} reports: ", employee.Name, employee.ReportCount);
            //show reports
            level++;
            foreach (var report in employee.Reports) {
                DisplayOrgChart(report, level);
            }
        }
示例#4
0
        static void DisplayOrgChart(Employee employee, int level = 0)
        {
            //indent
            for (var i = 0; i < level; i++)
            {
                Console.Write("---");
            }

            //SHow Name and report count
            Console.WriteLine("{0} has the following {1} reports:", employee.Name, employee.ReportCount);

            //Show reports
            level++;

            foreach (var report in employee.Report)
            {
                DisplayOrgChart(report, level);
            }
        }
示例#5
0
        static void Main(string[] args)
        {
            //Create Employees
            var bill = new Employee
            {
                Name = "Bill Gates",
                Report = new List<Employee>{
                    new Employee {Name = "Sam"},
                    new Employee {Name = "Fred",
                                  Report = new List<Employee>{
                                      new Employee{Name = "Alice"}
                                  }
                                  },
                    new Employee {Name = "Jane"}
                }
            };

            DisplayOrgChart(bill);
            Console.ReadLine();
        }