public void Visit(Leader leader, decimal budget) { var employees = leader.GetEmployees(); var totalSalary = leader.GetTotalSalary(); leader.Salary += CalculateBudget(budget, leader.Salary, totalSalary); foreach (var employee in employees) { var employeeBudget = CalculateBudget(budget, employee.GetTotalSalary(), totalSalary); employee.UpgradeSalary(employeeBudget); } }
public void Visit(Leader leader, int depth = 0) { Console.WriteLine(); PrintEmployeeDetails(leader, depth, ConsoleColor.Yellow); leader.GetEmployees().ForEach(c => c.PrintDetails(depth + 1)); }