// Travel agency's thread method
        public void runTravelAgency()
        {
            Console.Write("\n {0} is inside runTravelAgency() ", Thread.CurrentThread.Name);

            // declaring some variables that would be local to each thread
            DateTime orderTimeStamp;

            for (int i = 0; i < 70; i++)
            {
                Thread.Sleep(800);

                // travel agency is event driven, hence checking if an event occurred only then proceeding with creating order
                if (hasPriceCutEventHappened)
                {
                    OrderClass orderObject = new OrderClass();
                    orderObject.SenderId   = Thread.CurrentThread.Name;
                    orderObject.CardNo     = cardNo;
                    orderObject.ReceiverID = receiverId;
                    orderObject.NumTickets = numOfTickets;
                    orderObject.UnitPrice  = ticketUnitPrice;

                    String orderString = EncoderDecoderClass.encodeOrderObject(orderObject);
                    System.Console.WriteLine(" {0} built order: {1}", Thread.CurrentThread.Name, orderString);

                    // saving timestamp of the order before sending it to buffer
                    orderTimeStamp = DateTime.Now;

                    // travel agency sends the encoded string to one of the free cells in buffer
                    buffer.addToBuffer(orderString);

                    // setting the flag as false as the order for this event has been added to buffer
                    hasPriceCutEventHappened = false;
                }
            }
        }
 // Event handler for order confirmation event
 public void orderConfirmationEventHandler(OrderClass confirmedOrder, double totalAmountCharged)
 {
     lock (confirmBufferLock)
     {
         Console.WriteLine("-------------Successfully Placed Follwoing Order------------- :\n\n");
         Console.WriteLine("Agency           :" + confirmedOrder.SenderId);
         Console.WriteLine("AirLine          :" + confirmedOrder.ReceiverID);
         Console.WriteLine("Number Of Tickets:" + confirmedOrder.NumTickets);
         Console.WriteLine("Unit Price       :" + confirmedOrder.UnitPrice);
         Console.WriteLine("Total Price      :" + totalAmountCharged + "\n\n");
     }
 }