Example #1
0
        internal static Vehicle createVehicle(eVehicleType i_VehicleType, string i_LicenseNumber)
        {
            Vehicle newVehicle = null;

            switch (i_VehicleType)
            {
            case eVehicleType.FuelMotorcycle:
                newVehicle = new FuelMotorcycle(i_LicenseNumber);
                break;

            case eVehicleType.ElectricMotorcycle:
                newVehicle = new ElectricMotorcycle(i_LicenseNumber);
                break;

            case eVehicleType.FuelCar:
                newVehicle = new FuelCar(i_LicenseNumber);
                break;

            case eVehicleType.ElectricCar:
                newVehicle = new ElectricCar(i_LicenseNumber);
                break;

            case eVehicleType.FuelTruck:
                newVehicle = new FuelTruck(i_LicenseNumber);
                break;
            }

            return(newVehicle);
        }
Example #2
0
        public List <VehicleInputParam> GetVehicleInputParamList(int i_ChosenValue)
        {
            this.r_RequiredParams.Clear();
            switch (i_ChosenValue)
            {
            case 1:
                FuelMotorcycle.GetRequiredInputParamsForFuelMotorcycle(this.r_RequiredParams);
                break;

            case 2:
                ElectricMotorcycle.GetRequiredInputParamsForElectricMotorcycle(this.r_RequiredParams);
                break;

            case 3:
                FuelCar.GetRequiredInputParamsForFuelCar(this.r_RequiredParams);
                break;

            case 4:
                ElectricCar.GetRequiredInputParamsForElectricCar(this.r_RequiredParams);
                break;

            case 5:
                Truck.GetRequiredInputParamsForTruck(this.r_RequiredParams);
                break;
            }

            return(this.r_RequiredParams);
        }
        internal static Vehicle CreateVehicle(string i_VehicleType, string i_LicenseNumber)
        {
            eVehicleType vehicleType = (eVehicleType)int.Parse(i_VehicleType);
            Vehicle      vehicle     = null;

            switch (vehicleType)
            {
            case eVehicleType.ElectricCar:
                vehicle = new ElectricCar(i_LicenseNumber);
                break;

            case eVehicleType.ElectricMotorcycle:
                vehicle = new ElectricMotorcycle(i_LicenseNumber);
                break;

            case eVehicleType.FuelCar:
                vehicle = new FuelCar(i_LicenseNumber);
                break;

            case eVehicleType.FuelMotorcycle:
                vehicle = new FuelMotorcycle(i_LicenseNumber);
                break;

            case eVehicleType.Truck:
                vehicle = new Truck(i_LicenseNumber);
                break;
            }

            return(vehicle);
        }
Example #4
0
        public static Vehicle InitVehicle(eVehicleTypes i_VehicleType)
        {
            Vehicle newVehicle = null;

            switch (i_VehicleType)
            {
            case eVehicleTypes.FuelCar:
                newVehicle = new FuelCar();
                break;

            case eVehicleTypes.ElectricCar:
                newVehicle = new ElectricCar();
                break;

            case eVehicleTypes.FuelMotorcycle:
                newVehicle = new FuelMotorcycle();
                break;

            case eVehicleTypes.ElectricMotorcycle:
                newVehicle = new ElectricMotorcycle();
                break;

            case eVehicleTypes.Truck:
                newVehicle = new Truck();
                break;
            }

            return(newVehicle);
        }
Example #5
0
        private static void createMotorcycle(bool i_IsElectric, string i_MotorcycleModel, string i_LicencePlate, VehicleOwner i_VehicleOwner, eVehicles i_Vehicle)
        {
            float  energyLeft;
            int    validEngineVolume;
            float  wheelsCurrentAirPressure;
            string wheelMaker;
            eMotorcycleLicenceType licenceType;

            energyLeft = enterEnergyLeft(i_IsElectric, i_Vehicle, i_IsElectric ? k_ElectricMotorcycleMaxBattery : k_MotorcycleMaxFuel);

            licenceType = (eMotorcycleLicenceType)displayEnumOptions(typeof(eMotorcycleLicenceType), MessagesEnglish.k_GetLicenseTypeMessage);

            validEngineVolume = enterEngineVolume();

            getWheelInformation(out wheelMaker, out wheelsCurrentAirPressure, s_MyGarage.MotorcycleMaxAirPressure);

            if (i_IsElectric)
            {
                ElectricMotorcycle newElectricMotorcycle = CreateVehicle.CreateElectricMotorcycle(i_MotorcycleModel, i_LicencePlate, energyLeft, licenceType,
                                                                                                  validEngineVolume, wheelMaker, wheelsCurrentAirPressure, i_VehicleOwner);
                s_MyGarage.AddVehicleToGarage(newElectricMotorcycle);
            }
            else
            {
                Motorcycle newMotorcycle = CreateVehicle.CreateMotorcycle(i_MotorcycleModel, i_LicencePlate, energyLeft, licenceType,
                                                                          validEngineVolume, wheelMaker, wheelsCurrentAirPressure, i_VehicleOwner);
                s_MyGarage.AddVehicleToGarage(newMotorcycle);
            }
        }
Example #6
0
        public static ElectricMotorcycle CreateElectricMotorcycle(VehicleInformation i_vehicleInformation, Dictionary <string, Object> i_specificInformation)
        {
            Motorcycle.eLicense license          = (Motorcycle.eLicense)i_specificInformation["License"];
            int                engineVolume      = (int)i_specificInformation["Engine Volume"];
            string             wheelManufacturer = (string)i_specificInformation["Wheel Manufacturer"];
            ElectricMotorcycle electricMoto      = new ElectricMotorcycle(license, engineVolume, i_vehicleInformation, wheelManufacturer);

            return(electricMoto);
        }
Example #7
0
        private void putNewElectricEngineMotorcycle(string i_LicenseNumber, string i_ModelName, float i_PercentageOfEnergyLeft, eLicenseType i_LicenseType, int i_EngineCapacity, VehicleInGarage i_VehiclesInGarage, List <Wheel> i_Wheels)
        {
            float maxBbatteryTimeInHours = ElectricMotorcycle.k_MaxBbatteryTimeInHours;
            float batteryTimeInHoursLeft = inputBatteryTimeInHoursLeft(maxBbatteryTimeInHours);

            ElectricEngine     electricEngine     = m_VehicleManufacturer.createNewElectricEngine(batteryTimeInHoursLeft, maxBbatteryTimeInHours);
            ElectricMotorcycle electricMotorcycle = m_VehicleManufacturer.createNewElectricMotorcycle(electricEngine, i_LicenseType, i_EngineCapacity, i_ModelName, i_LicenseNumber, i_EngineCapacity, i_Wheels);

            i_VehiclesInGarage.CustomerVehicle = electricMotorcycle;
            m_Garage.PutANewCarIntoTheGarage(i_VehiclesInGarage);
        }
Example #8
0
        public static Vehicle CreateVehicle(int i_VehicleType, string i_VehicleLicenceNumber, string i_VehicleModelName, string i_WheelManufacturerName)
        {
            Vehicle vehicle;

            switch (i_VehicleType)
            {
            case 1:
                vehicle = new FuelCar(i_VehicleModelName, i_VehicleLicenceNumber, i_WheelManufacturerName);
                vehicle = vehicle as FuelCar;
                break;

            case 2:
                vehicle = new FuelMotorcycle(i_VehicleModelName, i_VehicleLicenceNumber, i_WheelManufacturerName);
                vehicle = vehicle as FuelMotorcycle;
                break;

            case 4:
                vehicle = new ElectricMotorcycle(i_VehicleModelName, i_VehicleLicenceNumber, i_WheelManufacturerName);
                vehicle = vehicle as ElectricMotorcycle;
                break;

            case 5:
                vehicle = new ElectricCar(i_VehicleModelName, i_VehicleLicenceNumber, i_WheelManufacturerName);
                vehicle = vehicle as ElectricCar;
                break;

            case 3:
                vehicle = new Truck(i_VehicleModelName, i_VehicleLicenceNumber, i_WheelManufacturerName);
                vehicle = vehicle as Truck;
                break;

            default:
                vehicle = null;
                break;
            }

            return(vehicle);
        }
Example #9
0
        public bool CreateVehicle(int i_OptionSelected, List <object> i_VehicleInfoParams, VehicleOwner i_VehicleOwner)
        {
            bool          resultToReturn       = true;
            Vehicle       vehicleToCreate      = null;
            GarageVehicle vehicleToAddToGarage = null;

            resultToReturn = checkIfVehicleIsNotInGarage((string)i_VehicleInfoParams[1]);
            if (resultToReturn)
            {
                switch (i_OptionSelected)
                {
                case 1:
                    vehicleToCreate = new FuelMotorcycle(i_VehicleInfoParams);
                    break;

                case 2:
                    vehicleToCreate = new ElectricMotorcycle(i_VehicleInfoParams);
                    break;

                case 3:
                    vehicleToCreate = new FuelCar(i_VehicleInfoParams);
                    break;

                case 4:
                    vehicleToCreate = new ElectricCar(i_VehicleInfoParams);
                    break;

                case 5:
                    vehicleToCreate = new Truck(i_VehicleInfoParams);
                    break;
                }

                vehicleToAddToGarage = new GarageVehicle(i_VehicleOwner, vehicleToCreate);
                this.r_GarageInstance.AddNewVehicleToGarage(vehicleToAddToGarage);
            }

            return(resultToReturn);
        }
Example #10
0
        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);
        }
Example #11
0
        private void addNewVehicleToGarage()
        {
            string licensePlate   = m_UserInputs.getLicensePlate();
            float  maxAirPressure = 0;
            float  maxBatteryTime = 0;

            FuelVehicle.eFuelType fuelType;
            Vehicle.eTireAmount   tireAmount;

            if (m_Garage.m_AllVehiclesInTheGarage.ContainsKey(licensePlate))
            {
                m_Garage.changeVehicleStatus(licensePlate, Client.eVehicleStatus.Repairing);
                m_UserInputs.vehicleAlreadyInGarageMessage();
            }
            else
            {
                string vehicleModel             = m_UserInputs.getValidString("Please enter vehicle model name:");
                string ownerName                = m_UserInputs.getValidString("Please enter Owner Name");
                string ownerPhone               = m_UserInputs.getOwnerPhone();
                float  percentOfRemainingEnergy = 0;
                Client newClient                = null;

                CreateVehicle.eVehicleType vehicleType = (CreateVehicle.eVehicleType)m_UserInputs.getVehicleType();

                string      tiresManufacturer = m_UserInputs.getValidString("Please enter the tires manufacturer:");
                float       currentTireAirPressure;
                List <Tire> listOfTires;
                Vehicle     vehicleForProperty;

                if (vehicleType == CreateVehicle.eVehicleType.ElectricCar || vehicleType == CreateVehicle.eVehicleType.FuelCar)
                {
                    maxAirPressure         = (float)Tire.eMaxAirPressure.Car;
                    currentTireAirPressure = m_UserInputs.getTiresPressure(maxAirPressure);
                    tireAmount             = Vehicle.eTireAmount.Car;
                    listOfTires            = CreateVehicle.createListOfTires(tireAmount, tiresManufacturer, currentTireAirPressure, maxAirPressure);
                    Car.eColor         carColor      = m_UserInputs.getCarColor();
                    Car.eNumberOfDoors numberOfDoors = m_UserInputs.getNumberOfDoors();
                    Car car = CreateVehicle.createCar(carColor, numberOfDoors);

                    if (vehicleType == CreateVehicle.eVehicleType.ElectricCar)
                    {
                        float remainingBatteryTime = m_UserInputs.getRemainingBatteryTime(ElectricCar.k_MaxBatteryTime);
                        percentOfRemainingEnergy = Vehicle.getPercentOfEnergy(remainingBatteryTime, ElectricCar.k_MaxBatteryTime);
                        ElectricCar electricCar = CreateVehicle.createElectricCar(car, remainingBatteryTime, maxBatteryTime, vehicleModel, licensePlate, percentOfRemainingEnergy, listOfTires);
                        newClient = CreateVehicle.createClient(ownerName, ownerPhone, Client.eVehicleStatus.Repairing, electricCar);
                    }
                    else
                    {
                        fuelType = FuelVehicle.eFuelType.Octan98;
                        float currentAmountOfFuel = m_UserInputs.getCurrentAmountOfFuel(FuelCar.k_MaxAmountOfFuel);
                        percentOfRemainingEnergy = Vehicle.getPercentOfEnergy(currentAmountOfFuel, FuelCar.k_MaxAmountOfFuel);
                        FuelCar fuelCar = CreateVehicle.createFuelCar(car, fuelType, currentAmountOfFuel, vehicleModel, licensePlate, percentOfRemainingEnergy, listOfTires);
                        newClient = CreateVehicle.createClient(ownerName, ownerPhone, Client.eVehicleStatus.Repairing, fuelCar);
                    }

                    vehicleForProperty = newClient.m_Vehicle;
                    Car.setProperties(vehicleForProperty, carColor, numberOfDoors);
                }
                else if (vehicleType == CreateVehicle.eVehicleType.ElectricMotorcycle || vehicleType == CreateVehicle.eVehicleType.FuelMotorcycle)
                {
                    maxAirPressure         = (float)Tire.eMaxAirPressure.Motorcycle;
                    currentTireAirPressure = m_UserInputs.getTiresPressure(maxAirPressure);
                    tireAmount             = Vehicle.eTireAmount.Motorcycle;
                    listOfTires            = CreateVehicle.createListOfTires(tireAmount, tiresManufacturer, currentTireAirPressure, maxAirPressure);
                    Motorcycle.eTypeOfLicense typeOfLicense = m_UserInputs.getTypeOfLicense();
                    int        engineCapacity = m_UserInputs.getValidInt("Please enter engine capacity:", 0, int.MaxValue);
                    Motorcycle motorCycle     = CreateVehicle.createMotorcycle(typeOfLicense, engineCapacity);

                    if (vehicleType == CreateVehicle.eVehicleType.ElectricMotorcycle)
                    {
                        float remainingBatteryTime = m_UserInputs.getRemainingBatteryTime(ElectricMotorcycle.k_MaxBatteryTime);
                        percentOfRemainingEnergy = Vehicle.getPercentOfEnergy(remainingBatteryTime, ElectricMotorcycle.k_MaxBatteryTime);
                        ElectricMotorcycle electricMotorcycle = CreateVehicle.createElectricMotorcycle(motorCycle, remainingBatteryTime, vehicleModel, licensePlate, percentOfRemainingEnergy, listOfTires);
                        newClient = CreateVehicle.createClient(ownerName, ownerPhone, Client.eVehicleStatus.Repairing, electricMotorcycle);
                    }
                    else
                    {
                        fuelType = FuelVehicle.eFuelType.Octan95;
                        float currentAmountOfFuel = m_UserInputs.getCurrentAmountOfFuel(FuelMotorcycle.k_MaxAmountOfFuel);
                        percentOfRemainingEnergy = Vehicle.getPercentOfEnergy(currentAmountOfFuel, FuelMotorcycle.k_MaxAmountOfFuel);
                        FuelMotorcycle fuelMotorcycle = CreateVehicle.createFuelMotorcycle(motorCycle, fuelType, currentAmountOfFuel, vehicleModel, licensePlate, percentOfRemainingEnergy, listOfTires);
                        newClient = CreateVehicle.createClient(ownerName, ownerPhone, Client.eVehicleStatus.Repairing, fuelMotorcycle);
                    }

                    vehicleForProperty = newClient.m_Vehicle;
                    Motorcycle.setProperties(vehicleForProperty, typeOfLicense, engineCapacity);
                }
                else if (vehicleType == CreateVehicle.eVehicleType.Truck)
                {
                    maxAirPressure         = (float)Tire.eMaxAirPressure.Truck;
                    currentTireAirPressure = m_UserInputs.getTiresPressure(maxAirPressure);
                    tireAmount             = Vehicle.eTireAmount.Truck;
                    listOfTires            = CreateVehicle.createListOfTires(tireAmount, tiresManufacturer, currentTireAirPressure, maxAirPressure);
                    fuelType = FuelVehicle.eFuelType.Soler;
                    bool  carrierDangerousMaterials = m_UserInputs.getIfCarrierDangerousMaterials();
                    float maximumCarryingWeight     = m_UserInputs.getValidFloat("Please enter maximum carry weight:", 0, int.MaxValue);
                    Truck truck = CreateVehicle.createTruck(carrierDangerousMaterials, maximumCarryingWeight);
                    float currentAmountOfFuel = m_UserInputs.getCurrentAmountOfFuel(FuelTruck.k_MaxAmountOfFuel);
                    percentOfRemainingEnergy = Vehicle.getPercentOfEnergy(currentAmountOfFuel, FuelTruck.k_MaxAmountOfFuel);
                    FuelTruck fuelTruck = CreateVehicle.createFuelTruck(truck, fuelType, currentAmountOfFuel, vehicleModel, licensePlate, percentOfRemainingEnergy, listOfTires);
                    newClient          = CreateVehicle.createClient(ownerName, ownerPhone, Client.eVehicleStatus.Repairing, fuelTruck);
                    vehicleForProperty = newClient.m_Vehicle;
                    Truck.setProperties(vehicleForProperty, carrierDangerousMaterials, maximumCarryingWeight);
                }

                m_Garage.addVehicle(newClient);
                m_UserInputs.suceededToAddMessage();
            }

            System.Console.ReadLine();
        }