private static Vehicle getVehicleFromUser() { Vehicle createdVehicle = null; List <object> userEnteredProperties = null; GarageENums.eVehicleType typeOfVehicleToAdd = (GarageENums.eVehicleType)getUserChoiceFromEnumValues(typeof(GarageENums.eVehicleType)); switch (typeOfVehicleToAdd) { case GarageENums.eVehicleType.FuelCar: userEnteredProperties = getPropertiesFromUser(FuelCar.GetRequiredProperties(), 1); break; case GarageENums.eVehicleType.ElectricCar: userEnteredProperties = getPropertiesFromUser(ElectricCar.GetRequiredProperties(), 2); break; case GarageENums.eVehicleType.FuelMotorcycle: userEnteredProperties = getPropertiesFromUser(FuelMotorcycle.GetRequiredProperties(), 3); break; case GarageENums.eVehicleType.ElectricMotorcycle: userEnteredProperties = getPropertiesFromUser(ElectricMotorcycle.GetRequiredProperties(), 4); break; case GarageENums.eVehicleType.FuelTruck: userEnteredProperties = getPropertiesFromUser(FuelTruck.GetRequiredProperties(), 5); break; default: break; } createdVehicle = VehicleGenerator.GenerateVehicle(typeOfVehicleToAdd, userEnteredProperties); return(createdVehicle); }