using System.Collections;
using System.Collections.Generic;
namespace ConsoleApplication27
static void Main(string[] args)
Customer cust = new Customer();
OrderAddListener OAL = new OrderAddListener();
cust.orderEvent+=OAL.EventListener;
cust.AddOrder(new Order() { Desc = "Shoes", Price = 120, Quantity = 1 });
cust.AddOrder(new Order() { Desc = "Jacket", Price = 40, Quantity = 30 });
cust.AddOrder(new Order() { Desc = "Tv", Price = 600, Quantity = 1 });
Console.WriteLine(o.Desc+" " +o.Quantity+" "+ o.Price);
public void EventListener(object sender,orderEventsArgs e)
Console.WriteLine("An order was added. Here are the order details: Desc ={0} , Quantity = {1}, Price ={2}",e.order.Desc,e.order.Quantity,e.order.Price);
public delegate void OrderDel(Object o, orderEventsArgs e);
class Customer : IEnumerable<Order>
public string FirstName { get; set; }
public string LastName { get; set; }
public event OrderDel orderEvent;
private List<Order> _Orders { get; set; }
_Orders = new List<Order>();
public void AddOrder(Order item)
orderEvent(this, new orderEventsArgs(item));
public IEnumerator<Order> GetEnumerator()
foreach (var item in _Orders)
IEnumerator IEnumerable.GetEnumerator()
throw new NotImplementedException();
public class orderEventsArgs:EventArgs
public orderEventsArgs(Order o)
public string Desc { get; set; }
public decimal Price { get; set; }
public int Quantity { get; set; }