using System.Collections.Generic;
namespace ConsoleApplication12
public static void Main()
Queue<Customer> CustomerQueue = new Queue<Customer>();
CustomerQueue.Enqueue(new Customer {Fname = "simran", Lname = "jeet"});
CustomerQueue.Enqueue(new Customer { Fname = "Rae", Lname = "williams" });
CustomerQueue.Enqueue(new Customer { Fname = "Diva", Lname = " Da Silva" });
CustomerQueue.Enqueue(new Customer { Fname = "Jack", Lname = "Jump" });
CustomerQueue.Enqueue(new Customer { Fname = "Christina", Lname = "Mills" });
foreach(var cust in CustomerQueue)
table CurrentTable = new table();
Listeners tablelistner = new Listeners();
CurrentTable.tableevent += tablelistner.TableListener;
CurrentTable.tableStatus(cust.Fname, cust.Lname);
Console.WriteLine("Everyone is full");
public void TableListener(object sender, tableEeventArgs o)
Console.WriteLine("{0} {1} got a table", o.Firstname, o.Lastname);
public void CustomerListener(object sender, customerEventArgs c)
Console.WriteLine("{0} {1} is having {2}", c.FirstNameC, c.LastNameC, c.CurrentMeal);
public delegate void tabledelegate(object sender, tableEeventArgs t);
public class tableEeventArgs : EventArgs
public string Firstname { get; set; }
public string Lastname { get; set; }
public tableEeventArgs(string firstname, string lastname)
this.Firstname = firstname;
this.Lastname = lastname;
public event tabledelegate tableevent;
public void tableStatus(string firstname, string lastname)
Console.WriteLine("Table is Open");
tabledelegate tableStatus = tableevent;
tableStatus(this, new tableEeventArgs(firstname.ToString(), lastname.ToString()));
public enum Meals { none, appetizer, main, desert, done };
public delegate void customerdelegate(object sender, customerEventArgs c);
public class customerEventArgs : EventArgs
public string FirstNameC { get; set; }
public string LastNameC { get; set; }
public string CurrentMeal { get; set; }
public customerEventArgs(string firstname, string lastname, string MyCurrentMeal)
CurrentMeal = MyCurrentMeal;
public string Fname { get; set; }
public string Lname { get; set; }
public event customerdelegate customerevent;
public void MealChanged(string firstname, string lastname, string MyCurrentMeal)
customerdelegate MealStatus = customerevent;
MealStatus(this, new customerEventArgs(firstname, lastname, MyCurrentMeal));
foreach (string meal in Enum.GetNames(typeof(Meals)))
Customer CurrentCust = new Customer();
Listeners Customerlistner = new Listeners();
CurrentCust.customerevent += Customerlistner.CustomerListener;
CurrentCust.MealChanged(Fname,Lname,meal );