/// <summary> /// Initialize the Passenger List /// </summary> /// <param name="customersList"></param> private static void initializePassenger(List <Customer> customersList) { //TicketHandler deals with all the functionalities which related to the ticket. TicketHandler ticketHandler = new TicketHandler(); //High Cohesion and low coupling between TicketHandler, TicketFactory, Ticket and Customer classes. InsuranceFactory insuranceCompany = new AdvancedInsuranceProvider(200, "Comprehensive Coverage"); Insurance myInsurance = insuranceCompany.GetInsurance(); TicketFactory ticketProvider = new PremiumEconomyTicketFactory(48, true, myInsurance); Ticket myTicket = ticketProvider.GetTicket(); Customer customer1 = new Customer(); Customer customer2 = new Customer(); Customer customer3 = new Customer(); customersList.Add(customer1); customersList.Add(customer2); customersList.Add(customer3); foreach (Customer customer in customersList) { Random rd = new Random(); customer.CustomerId = rd.Next(0, 100000); customer.CustomerName = "Customer" + rd.Next(1, 100).ToString(); customer.MyTicket = ticketHandler.BookTicket(myTicket); } }
/// <summary> /// Customer can upgrade thier seat by using Tickect Handler Controller. /// </summary> /// <param name="myTicket"></param> public void UpgradeTicket(Ticket myTicket, string typeOfTicket) { TicketFactory ticketProvider = null; Ticket myNewTicket = null; switch (typeOfTicket) { case "Economy": ticketProvider = new EconomyTicketFactory(); break; case "PremiunEconomy": ticketProvider = new PremiumEconomyTicketFactory(); break; case "Business": ticketProvider = new BusinessTicketFactory(); break; } myNewTicket = ticketProvider.GetTicket(); myTicket.TicketType = myNewTicket.TicketType; myTicket.IsCancellationInsuranceApplied = myNewTicket.IsCancellationInsuranceApplied; myTicket.CancellationDuration = myNewTicket.CancellationDuration; myTicket.UserInsurance = myNewTicket.UserInsurance; Console.WriteLine("---Successfully Upgraded the seat---"); Console.WriteLine("Your Seat Level now is '{0}'.", myTicket.TicketType); Console.WriteLine("-------------------------------------"); }