Example #1
0
        private static void registerVehicle(string i_VehicleLicensePlate, Garage i_Garage)
        {
            string stringUserChoiceForVehicle;
            int    intUserChoiceForVehicle = 0;
            bool   isChoiceValid           = !true;

            CreateVwhicleInGarage.eVehicleTypes typeOfVehicleToAdd;
            string          vehicleOwnersName        = getVehicleOwnersName();
            string          vehicleOwnersPhoneNumber = getVehicleOwnersPhoneNumber();
            string          vehicleModelName         = getVehicleModelName();
            Engine          engineForVehicle;
            List <Wheel>    wheelsForVehicle;
            Vehicle         vehicleToAdd = null;
            VehicleInGarage newVehicleToAddToTheGarage;

            while (isChoiceValid == !true)
            {
                printVehicleMenu();
                stringUserChoiceForVehicle = Console.ReadLine();
                try
                {
                    intUserChoiceForVehicle = convertUserChoiceToInt(stringUserChoiceForVehicle);
                    isChoiceValid           = checkChoiceValidity(intUserChoiceForVehicle, 1, k_NumberOfVehicleTypes);
                }
                catch (FormatException)
                {
                    Console.WriteLine("Invalid input! bad format");
                }
            }

            typeOfVehicleToAdd = (CreateVwhicleInGarage.eVehicleTypes)intUserChoiceForVehicle;

            switch (typeOfVehicleToAdd)
            {
            case CreateVwhicleInGarage.eVehicleTypes.Motorcycle:
                engineForVehicle = getEngineForUser(CreateVwhicleInGarage.eVehicleTypes.Motorcycle);
                wheelsForVehicle = getWheelsFromUser(Vehicle.eNuberOfWheelsForVehicle.TwoWheels, Vehicle.eMaximumAirPressure.MotorcycleAirPressure);
                Motorcycle.eLicenseType licenseType = getLicenseTypeFromUser();
                int engineVolume = getEngineVolumeFromUser();
                vehicleToAdd = CreateVwhicleInGarage.CreateMotorcycle(licenseType, engineVolume, vehicleModelName, i_VehicleLicensePlate, Vehicle.eMaximumAirPressure.MotorcycleAirPressure, wheelsForVehicle, engineForVehicle);
                break;

            case CreateVwhicleInGarage.eVehicleTypes.Car:
                engineForVehicle = getEngineForUser(CreateVwhicleInGarage.eVehicleTypes.Car);
                wheelsForVehicle = getWheelsFromUser(Vehicle.eNuberOfWheelsForVehicle.FourWheels, Vehicle.eMaximumAirPressure.CarAirPressure);
                Car.eNumbersOfDoors numberOfDoors = getNumberOfDoorsInCar();
                Car.eColor          carColor      = getCarColor();
                vehicleToAdd = CreateVwhicleInGarage.CreateCar(carColor, numberOfDoors, vehicleModelName, i_VehicleLicensePlate, Vehicle.eMaximumAirPressure.CarAirPressure, wheelsForVehicle, engineForVehicle);
                break;

            case CreateVwhicleInGarage.eVehicleTypes.Truck:
                engineForVehicle = getEngineForUser(CreateVwhicleInGarage.eVehicleTypes.Truck);
                wheelsForVehicle = getWheelsFromUser(Vehicle.eNuberOfWheelsForVehicle.TwelveWheels, Vehicle.eMaximumAirPressure.TruckAirPressure);
                bool  isTrunkCooled = askUserIfTruckTrunkCooled();
                float trunkVolume   = getTruckTrunkVolumeFromUser();
                vehicleToAdd = CreateVwhicleInGarage.CreateTruck(isTrunkCooled, trunkVolume, vehicleModelName, i_VehicleLicensePlate, Vehicle.eMaximumAirPressure.TruckAirPressure, wheelsForVehicle, engineForVehicle);
                break;
            }

            newVehicleToAddToTheGarage = CreateVwhicleInGarage.RegisterVehicleIntoGarage(vehicleOwnersName, vehicleOwnersPhoneNumber, vehicleToAdd);
            i_Garage.AddVehicleToTheGarageList(newVehicleToAddToTheGarage);
            Console.WriteLine("Vehicle added successfully");
        }