public virtual void OnLoan(LoanEventArgs e)
 {
     if (Loan != null)
     {
         Loan(this, e);
     }
 }
 public override void LoanHandler(object sender, LoanEventArgs e)
 {
     if (e.Loan.Amount < 25000.0)
     {
         Console.WriteLine($"{this.GetType().Name} approved request# {e.Loan.Number}");
     }
     else if (Successor != null)
     {
         Successor.LoanHandler(this, e);
     }
 }
 public abstract void LoanHandler(object sender, LoanEventArgs e);