private static ExpenseHandler CreateReportingChain() { ExpenseHandler manager = new ExpenseHandler(new Employee("Manager", decimal.Zero)); ExpenseHandler director = new ExpenseHandler(new Employee("Director", new decimal(1000))); ExpenseHandler vicePresident = new ExpenseHandler(new Employee("Vice President", new decimal(5000))); ExpenseHandler president = new ExpenseHandler(new Employee("President", new decimal(20000))); manager.RegisterNext(director); director.RegisterNext(vicePresident); vicePresident.RegisterNext(president); return(manager); }
static void Main() { ExpenseHandler william = new ExpenseHandler(new Employee("William Worker", decimal.Zero)); ExpenseHandler mary = new ExpenseHandler(new Employee("Mary Manager", new decimal(1000))); ExpenseHandler victor = new ExpenseHandler(new Employee("Victor Vicepres", new decimal(2000))); ExpenseHandler paula = new ExpenseHandler(new Employee("Paula President", new decimal(5000))); william.RegisterNext(mary); mary.RegisterNext(victor); victor.RegisterNext(paula); decimal expenseReportAmount; if (ConsoleInput.TryReadDecimal("Expense Report Amount: ", out expenseReportAmount)) { IExpenseReport expense = new ExpenseReport(expenseReportAmount); ApprovalResponse response = william.Approve(expense); Console.WriteLine("The request was {0}.", response); } Console.ReadKey(); }