public override void LoanHandler(object sender, LoanEventArgs e)
 {
     if (e.Loan.Amount < 25000)
     {
         WriteLine($"{this.GetType().Name} approved request# {e.Loan.Number}");
     }
     else if (Successor != null)
     {
         Successor.LoanHandler(this, e);
     }
 }
 public override void LoanHandler(object sender, LoanEventArgs e)
 {
     if (e.Loan.Amount < 100000)
     {
         WriteLine($"{sender.GetType().Name} approved request# {e.Loan.Number}");
     }
     else if (Successor != null)
     {
         Successor.LoanHandler(this, e);
     }
     else
     {
         WriteLine($"Request# {e.Loan.Number} requires an executive meeting");
     }
 }
 public virtual void OnLoan(LoanEventArgs e)
 {
     Loan?.Invoke(this, e);
 }
 //Loan event handler
 public abstract void LoanHandler(object sender, LoanEventArgs e);