using System.Collections.Generic; using System.Diagnostics; using TicketSystem.Tickets; namespace TicketSystem { public class Order { private List tickets; private int price; public int Price => price; public Order() { tickets = new List(); price = 0; } public void AddTicket(Ticket ticket) { tickets.Add(ticket); price += ticket.price; } public void AddTicket(TicketType type) { Ticket t; switch (type) { case TicketType.Child: t = new Child(); tickets.Add(t); price += t.price; break; case TicketType.Student: t = new Student(); tickets.Add(t); price += t.price; break; case TicketType.Adult: t = new Ticket(); tickets.Add(t); price += t.price; break; } } public void ApplyReduction() { price = 0; foreach (var ticket in tickets) { price += ticket.PriceWithReduction(); } } } }