コード例 #1
0
        public static Vehicle BuildVehicle(eVehicleType i_SelectedType)
        {
            Vehicle newVehicle = null;

            switch (i_SelectedType)
            {
            case eVehicleType.FuelTruck:
                newVehicle = new FuelTruck();
                break;

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

            case eVehicleType.ElectricBike:
                newVehicle = new ElectricBike();
                break;

            case eVehicleType.FuelBike:
                newVehicle = new FuelBike();
                break;

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

            return(newVehicle);
        }
コード例 #2
0
        internal static Vehicle CreateVehicle(eVehicleType i_VehicleType, bool i_IsElectric)
        {
            Vehicle retVehicle = null;

            switch (i_VehicleType)
            {
            case eVehicleType.Car:
                if (i_IsElectric)
                {
                    retVehicle = new ElectricCar();
                }
                else
                {
                    retVehicle = new FuelCar();
                }
                break;

            case eVehicleType.MotorCycle:
                if (i_IsElectric)
                {
                    retVehicle = new ElectricMotorCycle();
                }
                else
                {
                    retVehicle = new FuelMotorCycle();
                }
                break;

            case eVehicleType.Truck:
                retVehicle = new FuelTruck();
                break;
            }

            return(retVehicle);
        }
コード例 #3
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);
        }
コード例 #4
0
        private void putNewFuelTruckInGarage(string i_ModelName, string i_LicenseNumber, float i_PercentageOfEnergyLeft, bool i_IsTheTrunkCooled, float i_TrunkVolume, VehicleInGarage i_VehiclesInGarage, List <Wheel> i_Wheels)
        {
            eFuelType fuelType          = FuelTruck.k_FuelType;
            float     maxFuelInLiter    = FuelTruck.k_MaxFuelInLiter;
            float     currentFuelAmount = inputCurrentFuelAmount(maxFuelInLiter);

            FuelEngine fuelEngine = m_VehicleManufacturer.createNewFuelEngine(fuelType, currentFuelAmount, maxFuelInLiter);
            FuelTruck  fuelTruck  = m_VehicleManufacturer.createNewFuelTruck(fuelEngine, i_ModelName, i_LicenseNumber, i_PercentageOfEnergyLeft, i_IsTheTrunkCooled, i_TrunkVolume, i_Wheels);

            i_VehiclesInGarage.CustomerVehicle = fuelTruck;
            m_Garage.PutANewCarIntoTheGarage(i_VehiclesInGarage);
        }
コード例 #5
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);
        }
コード例 #6
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();
        }