// Invoke the Purchase event public virtual void OnPurchase(PurchaseEventArgs e) { if (Purchase != null) { Purchase(this, e); } }
public override void PurchaseHandler(object sender, PurchaseEventArgs e) { if (e.Purchase.Amount < 10000.0) { Console.WriteLine("{0} approved request# {1}", this.GetType().Name, e.Purchase.Number); } else if (Successor != null) { Successor.PurchaseHandler(this, e); } }
// Purchase event handler public abstract void PurchaseHandler(object sender, PurchaseEventArgs e);
public void ProcessRequest(Purchase purchase) { PurchaseEventArgs e = new PurchaseEventArgs { Purchase = purchase }; OnPurchase(e); }