public void GenerateTicketPrice() { int newPrice = pricingModel.GenerateTicketPrice(ticketPrice, ticketsAvailable, orderCounter); if (newPrice < ticketPrice) { // price cut!! Trigger an event that calls the Travel Agency if (PriceCutEvent != null) { PriceCutEvent(Thread.CurrentThread.Name, newPrice); } // if it reaches 20, the airline thread will terminate priceCutCounter++; ticketPrice = newPrice; } else { ticketPrice = newPrice; // no event } }