public VehicleTicket AddNewVehicle(string i_LicenseNumber, VehiclesEnums.eVehicleType i_VehicleType) { Vehicle vehicle = m_Factory.CreateNewVehicleOfType(i_VehicleType, i_LicenseNumber); VehicleTicket newVehicleTicket = new VehicleTicket(vehicle); m_Vehicles.Add(vehicle.GetLicenseNumber(), newVehicleTicket); return(newVehicleTicket); }
public Vehicle CreateNewVehicleOfType(VehiclesEnums.eVehicleType i_VehicleType, string i_LicenseNumber) { Vehicle vehicle; Engine engine = null; switch (i_VehicleType) { case VehiclesEnums.eVehicleType.FuelCar: engine = new FuelEngine(k_CarMaxFuelCapacity, k_CarFuelType); vehicle = new Car(i_LicenseNumber, engine); break; case VehiclesEnums.eVehicleType.ElectricCar: engine = new ElectricEngine(k_CarMaxEngineChargingTime); vehicle = new Car(i_LicenseNumber, engine); break; case VehiclesEnums.eVehicleType.FuelBike: engine = new FuelEngine(k_BikeMaxFuelCapacity, k_BikeFuelType); vehicle = new Bike(i_LicenseNumber, engine); break; case VehiclesEnums.eVehicleType.ElectricBike: engine = new ElectricEngine(k_BikeMaxEngineChargingTime); vehicle = new Bike(i_LicenseNumber, engine); break; case VehiclesEnums.eVehicleType.Truck: engine = new FuelEngine(k_TruckMaxFuelCapacity, k_TruckFuelType); vehicle = new Truck(i_LicenseNumber, engine); break; default: throw new ArgumentException(string.Format(k_InvalidVehicleType, i_VehicleType)); } return(vehicle); }