Esempio n. 1
0
        /// <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);
            }
        }
Esempio n. 2
0
        /// <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("-------------------------------------");
        }