static void Main(string[] args) { //create approvers IApprover manager = new Manager(); IApprover director = new Director(); IApprover gManager = new GeneralManager(); //Create the chain manager.Approver = director; director.Approver = gManager; //Create requests MoneyTransfer reqModel = new MoneyTransfer(850, "TR9045656456456464454642", "Caner Tosuner"); manager.HandleRequest(reqModel); reqModel = new MoneyTransfer(1450, "TR9045656456456464454642", "Caner Tosuner"); manager.HandleRequest(reqModel); reqModel = new MoneyTransfer(5550, "TR9045656456456464454642", "Caner Tosuner"); manager.HandleRequest(reqModel); reqModel = new MoneyTransfer(9000, "TR9045656456456464454642", "Caner Tosuner"); manager.HandleRequest(reqModel); Console.ReadKey(); }
public void HandleRequest(MoneyTransfer transfer) { if (transfer.Amount < 3000) { Console.WriteLine("{0} approved transfer request #{1}", this.GetType().Name, transfer.Amount); } else if (Approver != null) { Approver.HandleRequest(transfer); } }