Example #1
0
        public static Vehicle Generate(string i_WheelManufacturerName, string i_ModelName, string i_LicensePlate, TypeOfVehicle type)
        {
            Vehicle vehicleToReturn = null;

            switch (type)
            {
            case TypeOfVehicle.CombustionCar:
                vehicleToReturn = new CombustionCar(i_WheelManufacturerName, i_ModelName, i_LicensePlate);
                break;

            case TypeOfVehicle.CombustionMotorcycle:
                vehicleToReturn = new CombustionMotorcycle(i_WheelManufacturerName, i_ModelName, i_LicensePlate);
                break;

            case TypeOfVehicle.ElectricCar:
                vehicleToReturn = new ElectricCar(i_WheelManufacturerName, i_ModelName, i_LicensePlate);
                break;

            case TypeOfVehicle.ElectricMotorcycle:
                vehicleToReturn = new ElectricMotorcycle(i_WheelManufacturerName, i_ModelName, i_LicensePlate);
                break;

            case TypeOfVehicle.Truck:
                vehicleToReturn = new Truck(i_WheelManufacturerName, i_ModelName, i_LicensePlate);
                break;
            }

            return(vehicleToReturn);
        }
Example #2
0
        public static Vehicle CreateVehicle(string i_ModelName, string i_LicenceNumber, List <string> i_WheelsInfo, float i_EnergyLeftPercent, eVehicleType i_VehicleType, object i_InnerVehicleInfo)
        {
            Vehicle newVehicle = null;

            if (i_VehicleType == eVehicleType.ElectricCar)
            {
                newVehicle = new ElectricCar(i_ModelName, i_LicenceNumber, i_WheelsInfo, i_EnergyLeftPercent, (Car)i_InnerVehicleInfo);
            }
            else if (i_VehicleType == eVehicleType.GasCar)
            {
                newVehicle = new GasCar(i_ModelName, i_LicenceNumber, i_WheelsInfo, i_EnergyLeftPercent, (Car)i_InnerVehicleInfo);
            }
            else if (i_VehicleType == eVehicleType.ElectricMotorcycle)
            {
                newVehicle = new ElectricMotorcycle(i_ModelName, i_LicenceNumber, i_WheelsInfo, i_EnergyLeftPercent, (Motorcycle)i_InnerVehicleInfo);
            }
            else if (i_VehicleType == eVehicleType.GasMotorcycle)
            {
                newVehicle = new GasMotorcycle(i_ModelName, i_LicenceNumber, i_WheelsInfo, i_EnergyLeftPercent, (Motorcycle)i_InnerVehicleInfo);
            }
            else if (i_VehicleType == eVehicleType.GasTruck)
            {
                newVehicle = new GasTruck(i_ModelName, i_LicenceNumber, i_WheelsInfo, i_EnergyLeftPercent, (Truck)i_InnerVehicleInfo);
            }

            return(newVehicle);
        }
        public static Vehicle MakeVehicle(Vehicle.eVehicleType i_VehicleType, DetailsOfVehicle i_DetailsOfVehicle)
        {
            Vehicle newVehicle = null;

            switch (i_VehicleType)
            {
            case Vehicle.eVehicleType.FuelCar:
                newVehicle = new FuelCar(i_DetailsOfVehicle as DetailsOfFuelCar);
                break;

            case Vehicle.eVehicleType.ElectricCar:
                newVehicle = new ElectricCar(i_DetailsOfVehicle as DetailsOfElectricCar);
                break;

            case Vehicle.eVehicleType.ElectricMotorcycle:
                newVehicle = new ElectricMotorcycle(i_DetailsOfVehicle as DetailsOfElectricMotorcycle);
                break;

            case Vehicle.eVehicleType.FuelMotorcycle:
                newVehicle = new FuelMotorcycle(i_DetailsOfVehicle as DetailsOfFuelMotorcycle);
                break;

            case Vehicle.eVehicleType.Truck:
                newVehicle = new FuelTruck(i_DetailsOfVehicle as DetailsOfFuelTruck);
                break;
            }

            return(newVehicle);
        }
Example #4
0
        public static Vehicle CreateVehicle(eVehicleType i_VehicleType, string i_ModelName, string i_LicenseNumber)
        {
            Vehicle vehicleToCreate = null;

            switch (i_VehicleType)
            {
            case eVehicleType.FuelCar:
                vehicleToCreate = new FuelCar(i_ModelName, i_LicenseNumber);
                break;

            case eVehicleType.ElectricCar:
                vehicleToCreate = new ElectricCar(i_ModelName, i_LicenseNumber);
                break;

            case eVehicleType.FuelMotorcycle:
                vehicleToCreate = new FuelMotorcycle(i_ModelName, i_LicenseNumber);
                break;

            case eVehicleType.ElectricMotorcycle:
                vehicleToCreate = new ElectricMotorcycle(i_ModelName, i_LicenseNumber);
                break;

            case eVehicleType.FuelTruck:
                vehicleToCreate = new FuelTruck(i_ModelName, i_LicenseNumber);
                break;

            default:
                break;
            }

            return(vehicleToCreate);
        }
        public static Vehicle Create(eVehicleTypes i_Identifier, List <object> i_ParamsArray, Wheel[] i_Wheels)
        {
            Vehicle vehicleToReturn = null;

            switch (i_Identifier)
            {
            case eVehicleTypes.FuelCar:
                vehicleToReturn = new FuelCar((string)i_ParamsArray[0], (string)i_ParamsArray[1], (float)i_ParamsArray[2], (eCarColor)i_ParamsArray[3], (eDoorsNumber)i_ParamsArray[4], i_Wheels);
                break;

            case eVehicleTypes.FuelMotorcycle:
                vehicleToReturn = new FuelMotorcycle((string)i_ParamsArray[0], (string)i_ParamsArray[1], (float)i_ParamsArray[2], (eLicenseTypes)i_ParamsArray[3], (int)i_ParamsArray[4], i_Wheels);
                break;

            case eVehicleTypes.ElectricMotorcycle:
                vehicleToReturn = new ElectricMotorcycle((string)i_ParamsArray[0], (string)i_ParamsArray[1], (float)i_ParamsArray[2], (eLicenseTypes)i_ParamsArray[3], (int)i_ParamsArray[4], i_Wheels);
                break;

            case eVehicleTypes.ElectricCar:
                vehicleToReturn = new ElectricCar((string)i_ParamsArray[0], (string)i_ParamsArray[1], (float)i_ParamsArray[2], (eCarColor)i_ParamsArray[3], (eDoorsNumber)i_ParamsArray[4], i_Wheels);
                break;

            case eVehicleTypes.Truck:
                vehicleToReturn = new Truck((string)i_ParamsArray[0], (string)i_ParamsArray[1], (float)i_ParamsArray[2], (bool)i_ParamsArray[3], (int)i_ParamsArray[4], i_Wheels);
                break;

            default:
                break;
            }

            return(vehicleToReturn);
        }
Example #6
0
        public Vehicle InitVehicle(eVehicleTypes i_VehicleType)
        {
            Vehicle newVehicle = null;

            switch (i_VehicleType)
            {
            case eVehicleTypes.FUEL_CAR:
                newVehicle = new FuelCar(eFuel.OCTAN_96, r_MaxCarFuelCapability, eWheels.FOUR, r_MaxCarAirPessure);
                break;

            case eVehicleTypes.ELECTRIC_CAR:
                newVehicle = new ElectricCar(r_MaxCarBatteryCapabity, eWheels.FOUR, r_MaxCarAirPessure);
                break;

            case eVehicleTypes.FUEL_MOTORCYCLE:
                newVehicle = new FuelMotorcycle(eFuel.OCTAN_95, r_MaxMotorcycleFuelCapability, eWheels.TWO, r_MaxMotorcycleAirPessure);
                break;

            case eVehicleTypes.ELECTRIC_MOTORCYCLE:
                newVehicle = new ElectricMotorcycle(r_MaxMotorcycleBatteryCapabity, eWheels.TWO, r_MaxMotorcycleAirPessure);
                break;

            case eVehicleTypes.TRUCK:
                newVehicle = new Truck(eFuel.SOLER, r_MaxTruckFuelCapability, eWheels.SIXTEEN, r_MaxTruckAirPessure);
                break;

            default:
                throw new ArgumentException(string.Format("Invalid vehicle type - {0}", i_VehicleType.ToString()));
            }

            return(newVehicle);
        }
Example #7
0
        public static Vehicle CreateVehicle(Vehicle.eVehicleTypes i_VehicleType, string i_Model, string i_LicenseNumber, float i_EnergyLeft, List <Wheel> i_Wheels, Engine i_engine, Dictionary <string, object> features)
        {
            Vehicle vehicle = null;

            switch (i_VehicleType)
            {
            case Vehicle.eVehicleTypes.ElectricCar:
                vehicle = new ElectricCar((Vehicle.eCarColors)features["i_CarColor"], (Vehicle.eCarDoorsAmount)features["i_CarDoors"]);
                break;

            case Vehicle.eVehicleTypes.GasCar:
                vehicle = new GasCar((Vehicle.eCarColors)features["i_CarColor"], (Vehicle.eCarDoorsAmount)features["i_CarDoors"]);
                break;

            case Vehicle.eVehicleTypes.ElectricMotorcycle:
                vehicle = new ElectricMotorcycle((Vehicle.eLicenseTypes)features["i_MotorcycleLicenseType"], (int)features["i_EngineCapacity"]);
                break;

            case Vehicle.eVehicleTypes.GasMotorcycle:
                vehicle = new GasMotorcycle((Vehicle.eLicenseTypes)features["i_MotorcycleLicenseType"], (int)features["i_EngineCapacity"]);
                break;

            case Vehicle.eVehicleTypes.Truck:
                vehicle = new Truck((bool)features["i_IsCarryingDangerousMaterials"], (float)features["i_MaximumCarryingWeight"]);
                break;
            }

            vehicle.m_EnergyLeft  = i_EnergyLeft;
            vehicle.Engine        = i_engine;
            vehicle.Wheels        = i_Wheels;
            vehicle.LicenseNumber = i_LicenseNumber;
            vehicle.m_Model       = i_Model;
            return(vehicle);
        }
        /**
         * This method creates the wanted vehicle type and returns it
         * Throws ArgumentException if no such vehicle exists
         */
        public static Vehicle MakeVehicle(eVehicleType i_VehicleType)
        {
            Vehicle newVehicle;

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

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

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

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

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

            default:
                throw new ArgumentException(string.Format("The index {0} is not supported.", i_VehicleType));
            }

            return(newVehicle);
        }
        public static Vehicle CreateVehicle(eTypeOfVehicle i_TypeOfVehicle, string i_LicenseNumber)
        {
            Vehicle newVehicleToCreate = null;

            switch (i_TypeOfVehicle)
            {
            case eTypeOfVehicle.ElectricCar:
                newVehicleToCreate = new ElectricCar(i_LicenseNumber);
                break;

            case eTypeOfVehicle.ElectricMotorcycle:
                newVehicleToCreate = new ElectricMotorcycle(i_LicenseNumber);
                break;

            case eTypeOfVehicle.FuelTruck:
                newVehicleToCreate = new FuelTruck(i_LicenseNumber);
                break;

            case eTypeOfVehicle.FuelCar:
                newVehicleToCreate = new FuelCar(i_LicenseNumber);
                break;

            case eTypeOfVehicle.FuelMotorcycle:
                newVehicleToCreate = new FuelMotorcycle(i_LicenseNumber);
                break;
            }

            return(newVehicleToCreate);
        }
Example #10
0
        internal static Vehicle CreateVehicle(eVehicleType i_VehicleType, Dictionary <string, string> i_VehicleProperties)
        {
            Vehicle vehicle = null;

            switch (i_VehicleType)
            {
            case eVehicleType.Car:
                vehicle = new FuelCar();
                break;

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

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

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

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

            vehicle.SetVehicleProperties(i_VehicleProperties);

            return(vehicle);
        }
Example #11
0
        internal static Dictionary <string, List <string> > GetVehicleProperties(eVehicleType i_VehicleType)
        {
            Vehicle vehicle = null;

            switch (i_VehicleType)
            {
            case eVehicleType.Car:
                vehicle = new FuelCar();
                break;

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

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

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

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

            return(vehicle.GetVehicleProperties());
        }
Example #12
0
        public static Vehicle GenerateNewVehicle(eVehicleToGenerate i_VehicleToGenerate, List <string> i_NewVehicleData)
        {
            Vehicle newVehicle = null;

            Motorcycle.eMotorcycleLicenseType motorcycleLicenseType = 0;
            Car.eCarColorOptions carColor         = 0;
            Car.eNumberOfDoors   carNumberOfDoors = 0;

            if (i_VehicleToGenerate == eVehicleToGenerate.ElectricCar || i_VehicleToGenerate == eVehicleToGenerate.GasCar)
            {
                carColor         = (Car.eCarColorOptions)System.Enum.Parse(typeof(GasCar.eCarColorOptions), i_NewVehicleData[k_PlaceHolderForCarColor]);
                carNumberOfDoors = (Car.eNumberOfDoors)System.Enum.Parse(typeof(Car.eNumberOfDoors), i_NewVehicleData[k_PlaceHolderForCarDoorsNumber]);
            }

            if (i_VehicleToGenerate == eVehicleToGenerate.ElectricMotorcycle || i_VehicleToGenerate == eVehicleToGenerate.GasMotorcycle)
            {
                motorcycleLicenseType = (Motorcycle.eMotorcycleLicenseType)System.Enum.Parse(typeof(Motorcycle.eMotorcycleLicenseType), i_NewVehicleData[k_PlaceHolderForMotorcycleLicenseType]);
            }

            switch (i_VehicleToGenerate)
            {
            case eVehicleToGenerate.GasTruck:
                Truck.eTruckCargo containsDangerousCargo = (Truck.eTruckCargo)System.Enum.Parse(typeof(Truck.eTruckCargo), i_NewVehicleData[k_PlaceHolderForTruckContainsDangerousCargo]);
                newVehicle = new GasTruck(k_GasTruckMaxFuelTankCapacity, containsDangerousCargo, k_GasTruckFuelType, float.Parse(i_NewVehicleData[k_PlaceHolderForTruckVolumeCapacity]),
                                          float.Parse(i_NewVehicleData[k_PlaceHolderForTruckMaxAllowedCargoWeight]), i_NewVehicleData[k_PlaceHolderForVehicleNumber], i_NewVehicleData[k_PlaceHolderForVehicleModel],
                                          k_TruckNumberOfWheels, i_NewVehicleData[k_PlaceHolderForWheelManufacturer], k_TruckMaxAirPressure);
                break;

            case eVehicleToGenerate.GasMotorcycle:
                newVehicle = new GasMotorcycle(k_GasMotorcycleMaxFuelTankCapacity, k_GasMotorcycleFuelType, motorcycleLicenseType,
                                               int.Parse(i_NewVehicleData[k_PlaceHolderForMotorcycleEngineCapacity]), i_NewVehicleData[k_PlaceHolderForVehicleNumber],
                                               i_NewVehicleData[k_PlaceHolderForVehicleModel], k_MotorcycleNumberOfWheels, i_NewVehicleData[k_PlaceHolderForWheelManufacturer],
                                               k_MotorcycleMaxAirPressure);
                break;

            case eVehicleToGenerate.ElectricMotorcycle:
                newVehicle = new ElectricMotorcycle(k_ElectricMotorcycleMaxBatteryTimeInHours, motorcycleLicenseType, int.Parse(i_NewVehicleData[k_PlaceHolderForMotorcycleEngineCapacity]),
                                                    i_NewVehicleData[k_PlaceHolderForVehicleNumber], i_NewVehicleData[k_PlaceHolderForVehicleModel], k_MotorcycleNumberOfWheels, i_NewVehicleData[k_PlaceHolderForWheelManufacturer],
                                                    k_MotorcycleMaxAirPressure);
                break;

            case eVehicleToGenerate.GasCar:
                newVehicle = new GasCar(k_GasCarMaxFuelTankCapacity, k_GasCarFuelType, carColor, carNumberOfDoors, i_NewVehicleData[k_PlaceHolderForVehicleNumber],
                                        i_NewVehicleData[k_PlaceHolderForVehicleModel], k_CarNumberOfWheels,
                                        i_NewVehicleData[k_PlaceHolderForWheelManufacturer], k_CarMaxAirPressure);
                break;

            case eVehicleToGenerate.ElectricCar:
                newVehicle = new ElectricCar(k_ElectricCarMaxBatteryTimeInHours, carColor, carNumberOfDoors, i_NewVehicleData[k_PlaceHolderForVehicleNumber],
                                             i_NewVehicleData[k_PlaceHolderForVehicleModel], k_CarNumberOfWheels,
                                             i_NewVehicleData[k_PlaceHolderForWheelManufacturer], k_CarMaxAirPressure);
                break;

            default:
                break;
            }

            return(newVehicle);
        }
 public CreateVehicle(Vehicle i_Vehicle)
 {
     vehicle            = i_Vehicle;
     normalCar          = new NormalCar(vehicle);
     electricCar        = new ElectricCar(vehicle);
     normalMotorcycle   = new NormalMotorcycle(vehicle);
     electricMotorcycle = new ElectricMotorcycle(vehicle);
     truck = new Truck(vehicle);
     GetDataFromUser();
 }
Example #14
0
        public static ElectricMotorcycle CreateElectricMotorcycle(string i_VehicleModel, string i_LicencePlate, float i_BatteryLeft, eMotorcycleLicenceType i_LicenceType,
                                                                  int i_EngineVolume, string i_WheelMaker, float i_WheelCurrentPressure, VehicleOwner i_Owner)
        {
            ElectricMotorcycle electricMotorcycle = new ElectricMotorcycle(i_VehicleModel, i_LicencePlate, i_BatteryLeft, k_MotorcycleMaxBattery, k_MotorcycleNumOfWheels,
                                                                           i_LicenceType, i_EngineVolume, i_Owner);

            GenerateWheels(electricMotorcycle, k_MotorcycleMaxWheelPressure, i_WheelMaker, i_WheelCurrentPressure);

            return(electricMotorcycle);
        }
        private bool handleBatteryTimeSpan(string i_Answer, Vehicle i_VehicleInSetting)
        {
            bool succeed = true;

            ElectricCar        electricVehicle    = i_VehicleInSetting as ElectricCar;
            ElectricMotorcycle electricMotorcycle = i_VehicleInSetting as ElectricMotorcycle;

            if (electricVehicle != null)
            {
                succeed = float.TryParse(i_Answer, out float batteryCapacity);

                if (succeed)
                {
                    try
                    {
                        electricVehicle.MaximalBatteryTime = batteryCapacity;
                        electricVehicle.BatteryTimeLeft    = batteryCapacity / 2;
                    }
                    catch
                    {
                        succeed = false;
                    }
                }
                else
                {
                    succeed = false;
                }
            }

            if (electricMotorcycle != null)
            {
                succeed = float.TryParse(i_Answer, out float batteryCapacity);

                if (succeed)
                {
                    try
                    {
                        electricMotorcycle.MaximalBatteryTime = batteryCapacity;
                        electricMotorcycle.BatteryTimeLeft    = batteryCapacity / 2;
                    }
                    catch
                    {
                        succeed = false;
                    }
                }
                else
                {
                    succeed = false;
                }
            }

            return(succeed);
        }
Example #16
0
        public static Vehicle CreateElectricMotorcycle(Vehicle.BasicInformationOfVehicleAndOwner informationOfVehicleAndOwner, Motorcycle.e_LicenseType i_licenseType, int i_engineCapacity)
        {
            Vehicle electricMotorcycle = new ElectricMotorcycle(
                informationOfVehicleAndOwner.m_ModelName,
                informationOfVehicleAndOwner.m_LicenseNumber,
                informationOfVehicleAndOwner.m_WheelManufacturer,
                informationOfVehicleAndOwner.m_CurrentAirPressure,
                informationOfVehicleAndOwner.m_AmountEnergyResource,
                i_engineCapacity,
                i_licenseType);

            return(electricMotorcycle);
        }
Example #17
0
        public static Vehicle MakeNewVehicle(eVehicle i_TypeToCreate, string i_ModelName, string i_LicensePlateNumber, out List <string> o_QuestionsToAsk, out List <string> o_Attributes)
        {
            switch (i_TypeToCreate)
            {
            case eVehicle.ElectricCar:
            {
                o_QuestionsToAsk = ElectricCar.GetQuestions();
                o_Attributes     = ElectricCar.GetAtributes();
                return(new ElectricCar(i_ModelName, i_LicensePlateNumber, 4, 32, 2.1f));
            }

            case eVehicle.FuelCar:
            {
                o_QuestionsToAsk = FuelCar.GetQuestions();
                o_Attributes     = FuelCar.GetAtributes();
                return(new FuelCar(i_ModelName, i_LicensePlateNumber, 4, 32, FuelVehicle.eFuel.Octan96, 60));
            }

            case eVehicle.ElectricMotorcycle:
            {
                o_QuestionsToAsk = ElectricMotorcycle.GetQuestions();
                o_Attributes     = ElectricMotorcycle.GetAtributes();
                return(new ElectricMotorcycle(i_ModelName, i_LicensePlateNumber, 2, 30, 1.2f));
            }

            case eVehicle.FuelMotorcycle:
            {
                o_QuestionsToAsk = FuelMotorcycle.GetQuestions();
                o_Attributes     = FuelMotorcycle.GetAtributes();

                return(new FuelMotorcycle(i_ModelName, i_LicensePlateNumber, 2, 30, FuelVehicle.eFuel.Octan95, 7));
            }

            case eVehicle.Truck:
            {
                o_QuestionsToAsk = Truck.GetQuestions();
                o_Attributes     = Truck.GetAtributes();
                return(new Truck(i_ModelName, i_LicensePlateNumber, 16, 28, FuelVehicle.eFuel.Soler, 120));
            }

            default:
            {
                o_QuestionsToAsk = null;
                o_Attributes     = null;
                return(null);
            }
            }
        }
Example #18
0
        public static Vehicle CreateVehicle(Utilities.eTypeOfVehicle i_VehicleType, string i_ModelName, string i_NumberOfCarLicense, string i_NameOfManufacturer, float i_CurTirePressure)
        {
            Vehicle createdVehicle = null;

            switch (i_VehicleType)
            {
            case Utilities.eTypeOfVehicle.ElectricCar:
            {
                createdVehicle = new ElectricCar(i_ModelName, i_NumberOfCarLicense, i_NameOfManufacturer, i_CurTirePressure);
                break;
            }

            case Utilities.eTypeOfVehicle.ElectricMotorcycle:
            {
                createdVehicle = new ElectricMotorcycle(i_ModelName, i_NumberOfCarLicense, i_NameOfManufacturer, i_CurTirePressure);
                break;
            }

            case Utilities.eTypeOfVehicle.FuelBasedCar:
            {
                createdVehicle = new FuelBasedCar(i_ModelName, i_NumberOfCarLicense, i_NameOfManufacturer, i_CurTirePressure);
                break;
            }

            case Utilities.eTypeOfVehicle.FuelBasedMotorcycle:
            {
                createdVehicle = new FuelBasedMotorcycle(i_ModelName, i_NumberOfCarLicense, i_NameOfManufacturer, i_CurTirePressure);
                break;
            }

            case Utilities.eTypeOfVehicle.FuelBasedTruck:
            {
                createdVehicle = new FuelBasedTruck(i_ModelName, i_NumberOfCarLicense, i_NameOfManufacturer, i_CurTirePressure);
                break;
            }

            default:
            {
                throw new ArgumentException("Please enter a valid vehicle");
            }
            }

            return(createdVehicle);
        }
Example #19
0
        public void SetMotorcycleAdditionalParams(string i_LicenseNumber, int i_LicenseType, int i_EngineCapacity)
        {
            GarageVehicle garageVehicle = VehiclesInGarage[i_LicenseNumber];

            eLicenseTypes licenseType = checkIfValidLicenseTypeParam(i_LicenseType);

            if (garageVehicle.Vehicle is ElectricMotorcycle)
            {
                ElectricMotorcycle electricMotorcycle = garageVehicle.Vehicle as ElectricMotorcycle;
                electricMotorcycle.MotorcycleDetails.LicenseType    = licenseType;
                electricMotorcycle.MotorcycleDetails.EngineCapacity = i_EngineCapacity;
            }
            else if (garageVehicle.Vehicle is FuelMotorcycle)
            {
                FuelMotorcycle fuelMotorcycle = garageVehicle.Vehicle as FuelMotorcycle;
                fuelMotorcycle.MotorcycleDetails.LicenseType    = licenseType;
                fuelMotorcycle.MotorcycleDetails.EngineCapacity = i_EngineCapacity;
            }
        }
Example #20
0
        // check if the garage can handle with that king of vehicle
        private bool checkValidVehicle(Vehicle i_Vehicle)
        {
            bool               validFuelCar = false, validElectronicCar = false, validFuelMotor = false, validElectronicMotor = false, validTruck = false;
            FuelBaseCar        fuelBaseCar          = i_Vehicle as FuelBaseCar;
            ElectricCar        electronicCar        = i_Vehicle as ElectricCar;
            FuelBaseMotorcycle fuelBaseMotorcycle   = i_Vehicle as FuelBaseMotorcycle;
            ElectricMotorcycle electronicMotorcycle = i_Vehicle as ElectricMotorcycle;
            Truck              truck = i_Vehicle as Truck;

            if (fuelBaseCar != null)
            {
                validFuelCar = checkFuelBaseVehicleValid(
                    fuelBaseCar, r_FuelTypeGarageSupportForCarList, r_MaxFuelTankGarageSupportForFuelCarList,
                    r_NumOfWheelsGarageSupportForCarList, r_MaxAirPressureGarageSupportForCarList);
            }
            else if (electronicCar != null)
            {
                validElectronicCar = checkElectronicVehicleValid(
                    electronicCar, r_MaxBatteryTimeGarageSupportForElectricCarList,
                    r_NumOfWheelsGarageSupportForCarList, r_MaxAirPressureGarageSupportForCarList);
            }
            else if (fuelBaseMotorcycle != null)
            {
                validFuelMotor = checkFuelBaseVehicleValid(
                    fuelBaseMotorcycle, r_FuelTypeGarageSupportForMotorList, r_MaxFuelTankGarageSupportForFuelMotorList,
                    r_NumOfWheelsGarageSupportForMotorList, r_MaxAirPressureGarageSupportForMotorList);
            }
            else if (electronicMotorcycle != null)
            {
                validElectronicMotor = checkElectronicVehicleValid(
                    electronicMotorcycle, r_MaxBatteryTimeGarageSupportForElectricMotorList,
                    r_NumOfWheelsGarageSupportForMotorList, r_MaxAirPressureGarageSupportForMotorList);
            }
            else if (truck != null)
            {
                validTruck = checkFuelBaseVehicleValid(
                    truck, r_FuelTypeGarageSupportForTruckList, r_MaxFuelTankGarageSupportForTruckList,
                    r_NumOfWheelsGarageSupportForTruckList, r_MaxAirPressureGarageSupportForTruckList);
            }

            return(validFuelCar || validElectronicCar || validFuelMotor || validElectronicMotor || validTruck);
        }
Example #21
0
        public static Vehicle CreateKindOfVehicle(eKindOfVehicle i_KindOfVehicle, List <QuestionAnswer> i_InitialMessages)
        {
            const int k_UserName      = 0;
            const int k_UserPhone     = 1;
            const int k_LicenseNumber = 2;
            Vehicle   vehicle         = null;

            switch (i_KindOfVehicle)
            {
            case eKindOfVehicle.ElectricCar:
            {
                vehicle = new ElectricCar(i_InitialMessages[k_UserName].Answer, i_InitialMessages[k_UserPhone].Answer, i_InitialMessages[k_LicenseNumber].Answer);
                break;
            }

            case eKindOfVehicle.ElectricMotorcycle:
            {
                vehicle = new ElectricMotorcycle(i_InitialMessages[k_UserName].Answer, i_InitialMessages[k_UserPhone].Answer, i_InitialMessages[k_LicenseNumber].Answer);
                break;
            }

            case eKindOfVehicle.GasCar:
            {
                vehicle = new GasCar(i_InitialMessages[k_UserName].Answer, i_InitialMessages[k_UserPhone].Answer, i_InitialMessages[k_LicenseNumber].Answer);
                break;
            }

            case eKindOfVehicle.GasMotorcycle:
            {
                vehicle = new GasMotorcycle(i_InitialMessages[k_UserName].Answer, i_InitialMessages[k_UserPhone].Answer, i_InitialMessages[k_LicenseNumber].Answer);
                break;
            }

            case eKindOfVehicle.Truck:
            {
                vehicle = new Truck(i_InitialMessages[k_UserName].Answer, i_InitialMessages[k_UserPhone].Answer, i_InitialMessages[k_LicenseNumber].Answer);
                break;
            }
            }

            return(vehicle);
        }
Example #22
0
        // $G$ CSS-999 (-3) Public/internal methods should start with an Uppercase letter.
        internal static Vehicle createVehicle(string i_LicenseNumber, int i_VehicleType)
        {
            Vehicle      newVehicle  = null;
            eVehicleType vehicleType = (eVehicleType)i_VehicleType;

            switch (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);
        }
        private bool handleMotocycleLicenseType(string i_Answer, Vehicle i_VehicleInSetting)
        {
            bool succeed = byte.TryParse(i_Answer, out byte licenseNumber);

            ElectricMotorcycle electricMotorcycle = i_VehicleInSetting as ElectricMotorcycle;
            FuelBaseMotorcycle fuelBaseMotorcycle = i_VehicleInSetting as FuelBaseMotorcycle;

            eLicenseType licenseType = ElectricMotorcycle.ConvertNumToLicenseType(licenseNumber);

            if (succeed && electricMotorcycle != null)
            {
                try
                {
                    electricMotorcycle.LicenseType = licenseType;
                    succeed = true;
                }
                catch
                {
                    succeed = false;
                }
            }
            else if (succeed && fuelBaseMotorcycle != null)
            {
                try
                {
                    fuelBaseMotorcycle.LicenseType = licenseType;
                    succeed = true;
                }
                catch
                {
                    succeed = false;
                }
            }
            else
            {
                succeed = false;
            }

            return(succeed);
        }
Example #24
0
        public static Vehicle CreateVehicle(int i_VehicleType, string i_ModelName, string i_LicenceNumber)
        {
            Vehicle newVehicle = null;

            try
            {
                eVehicleType vehicleType = (eVehicleType)i_VehicleType;

                switch (vehicleType)
                {
                case eVehicleType.FuelCar:
                    newVehicle = new FuelCar(i_ModelName, i_LicenceNumber);
                    break;

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

                case eVehicleType.ElectricMotorcycle:
                    newVehicle = new ElectricMotorcycle(i_ModelName, i_LicenceNumber);
                    break;

                case eVehicleType.FuelMotorcycle:
                    newVehicle = new FuelMotorcycle(i_ModelName, i_LicenceNumber);
                    break;

                case eVehicleType.FuelTruck:
                    newVehicle = new FuelTruck(i_ModelName, i_LicenceNumber);
                    break;
                }
            }
            catch
            {
                throw new ArgumentException("No matching vehicle was found!!");
            }

            return(newVehicle);
        }
Example #25
0
        public Vehicle CreateVehicle()
        {
            try
            {
                Vehicle vehicleToCreate;
                switch (m_VehicleToCreate)
                {
                case eTypeOfVehicles.ElectricCar:
                    vehicleToCreate = new ElectricCar();
                    break;

                case eTypeOfVehicles.ElectricMotorcycle:
                    vehicleToCreate = new ElectricMotorcycle();
                    break;

                case eTypeOfVehicles.FuelCar:
                    vehicleToCreate = new FuelCar();
                    break;

                case eTypeOfVehicles.FuelMotorcycle:
                    vehicleToCreate = new FuelMotorcycle();
                    break;

                case eTypeOfVehicles.Truck:
                    vehicleToCreate = new Truck();
                    break;

                default:
                    throw new ArgumentException(r_ErrorMessage);
                }

                return(vehicleToCreate);
            }
            catch (Exception ex)
            {
                throw new Exception(r_ErrorMessage, ex);
            }
        }
        private bool handleMotocycleEngineCapacity(string i_Answer, Vehicle i_VehicleInSetting)
        {
            bool succeed = int.TryParse(i_Answer, out int engineCapacity);

            ElectricMotorcycle electricMotorcycle = i_VehicleInSetting as ElectricMotorcycle;
            FuelBaseMotorcycle fuelBaseMotorcycle = i_VehicleInSetting as FuelBaseMotorcycle;

            if (succeed && electricMotorcycle != null)
            {
                try
                {
                    electricMotorcycle.EngineCapacity = engineCapacity;
                }
                catch
                {
                    succeed = false;
                }
            }
            else if (succeed && fuelBaseMotorcycle != null)
            {
                try
                {
                    fuelBaseMotorcycle.EngineCapacity = engineCapacity;
                }
                catch
                {
                    succeed = false;
                }
            }
            else
            {
                succeed = false;
            }

            return(succeed);
        }
Example #27
0
        public static void GetSpecificVehicleInformtion(Vehicle i_Vehicle)
        {
            if (i_Vehicle is ElectricCar)
            {
                (i_Vehicle as ElectricCar).Color = Utilities.AskForSpecificVehicleDetailes(Utilities.eColor.Black, "what is the color of the vehicle?(type option number)");
                Console.Clear();
                (i_Vehicle as ElectricCar).DoorsNumber = Utilities.AskForSpecificVehicleDetailes(Utilities.eNumberOfDoors.Five, "How many doors? (type option number)");
                Console.Clear();
                Console.WriteLine("What is the current battery time?");
                string energy = Console.ReadLine();
                (i_Vehicle as ElectricCar).CurrentEnergyTime = ElectricBasedVehicle.CheckAndReturnEnergyTime(energy);
            }
            else if (i_Vehicle is FuelBasedCar)
            {
                (i_Vehicle as FuelBasedCar).Color = Utilities.AskForSpecificVehicleDetailes(Utilities.eColor.Black, "what is the color of the vehicle?");
                Console.Clear();
                (i_Vehicle as FuelBasedCar).DoorsNumber = Utilities.AskForSpecificVehicleDetailes(Utilities.eNumberOfDoors.Five, "How many doors? (type option number)");
                Console.Clear();
                Console.WriteLine("What is the current fuel amount?");
                string fuel = Console.ReadLine();
                (i_Vehicle as FuelBasedCar).CurrentFuelAmount = FuelBasedVehicle.CheckAndReturnFuel(fuel);
            }
            else if (i_Vehicle is ElectricMotorcycle)
            {
                (i_Vehicle as ElectricMotorcycle).LicenseType = Utilities.AskForSpecificVehicleDetailes(Utilities.eTypeOfLicense.A, "what is the license type?(type option number)");
                Console.Clear();
                Console.WriteLine("what is the engine max capacity?(type a number)");
                string capacity = Console.ReadLine();
                Console.Clear();
                (i_Vehicle as ElectricMotorcycle).EngineCapacity = ElectricMotorcycle.CheckAndReturnEngineCapacity(capacity);
                Console.Clear();
                Console.WriteLine("What is the current battery time?");
                string energy = Console.ReadLine();
                (i_Vehicle as ElectricMotorcycle).CurrentEnergyTime = ElectricBasedVehicle.CheckAndReturnEnergyTime(energy);
            }
            else if (i_Vehicle is FuelBasedMotorcycle)
            {
                (i_Vehicle as FuelBasedMotorcycle).LicenseType = Utilities.AskForSpecificVehicleDetailes(Utilities.eTypeOfLicense.A, "what is the license type?(type option number)");
                Console.Clear();
                Console.WriteLine("what is the engine max capacity?(type a number)");
                string capacity = Console.ReadLine();
                (i_Vehicle as FuelBasedMotorcycle).EngineCapacity = FuelBasedMotorcycle.CheckAndReturnEngineCapacity(capacity);
                Console.Clear();
                Console.WriteLine("What is the current fuel amount?");
                string fuel = Console.ReadLine();
                (i_Vehicle as FuelBasedMotorcycle).CurrentFuelAmount = FuelBasedVehicle.CheckAndReturnFuel(fuel);
            }
            else if (i_Vehicle is FuelBasedTruck)
            {
                Console.WriteLine("Is it carrying dangerous materials? type \"yes\" or \"no\"");
                string carrying = Console.ReadLine();

                while (carrying != "yes" && carrying != "no")
                {
                    Console.WriteLine("Wrong format, type \"yes\" or \"no\"");
                    carrying = Console.ReadLine();
                }

                (i_Vehicle as FuelBasedTruck).IsCarryingDangerousMaterials = carrying == "yes";
                Console.Clear();
                Console.WriteLine("what is it's maximum carrying weight (in kg)?");
                string maxWeight = Console.ReadLine();
                (i_Vehicle as FuelBasedTruck).MaximumCarryingWeight = FuelBasedTruck.CheckAndReturnMaximumCarryingWeight(maxWeight);
                Console.Clear();
                Console.WriteLine("What is the current fuel amount?");
                string fuel = Console.ReadLine();
                (i_Vehicle as FuelBasedTruck).CurrentFuelAmount = FuelBasedVehicle.CheckAndReturnFuel(fuel);
            }
        }
Example #28
0
        public static ElectricMotorcycle createElectricMotorcycle(Motorcycle i_Motorcycle, float i_RemainingBatteryTime, string i_Model, string i_LicensePlateNumber, float i_PercentOfRemainingEnergy, List <Tire> i_Tires)
        {
            ElectricMotorcycle newElectricMotorcycle = new ElectricMotorcycle(i_Motorcycle, i_RemainingBatteryTime, i_Model, i_LicensePlateNumber, i_PercentOfRemainingEnergy, i_Tires);

            return(newElectricMotorcycle);
        }
        public Vehicle FinishProduction(List <string> i_ExtraData)
        {
            Vehicle readyVehicle = null;

            switch (this.vehicleType)
            {
            case eVehicleType.Car:
                eColor color;
                if (!Enum.TryParse(i_ExtraData[0], out color) || !Enum.IsDefined(typeof(eColor), color))
                {
                    throw new FormatException("Color can contain only the following values: " + ListEnumOptions(color));
                }
                eDoorsAmount numberOfDoors;
                if (!Enum.TryParse(i_ExtraData[1], out numberOfDoors) || !Enum.IsDefined(typeof(eDoorsAmount), numberOfDoors))
                {
                    throw new FormatException("Doors amount can only contain the following values: " + ListEnumOptions(numberOfDoors));
                }

                readyVehicle = new Car(this.modelName, this.licenseNumber, this.energyLeft, color, numberOfDoors);
                break;

            case eVehicleType.ElectricCar:
                if (!Enum.TryParse(i_ExtraData[1], out numberOfDoors) || !Enum.IsDefined(typeof(eDoorsAmount), numberOfDoors))
                {
                    throw new FormatException("Doors amount can only contain the following values: " + ListEnumOptions(numberOfDoors));
                }

                if (!Enum.TryParse(i_ExtraData[0], out color) || !Enum.IsDefined(typeof(eColor), color))
                {
                    throw new FormatException("Color can contain only the following values: " + ListEnumOptions(color));
                }
                readyVehicle = new ElectricCar(this.modelName, this.licenseNumber, this.energyLeft, color, numberOfDoors);
                break;

            case eVehicleType.Motorcycle:
                eLicense licenseType;
                if (!Enum.TryParse(i_ExtraData[0], out licenseType) || !Enum.IsDefined(typeof(eLicense), licenseType))
                {
                    throw new FormatException("License type can only contain the following values: " + ListEnumOptions(licenseType));
                }
                int engineVolume;
                if (!int.TryParse(i_ExtraData[1], out engineVolume))
                {
                    throw new FormatException("Bad value for engine volume. Enter integer value");
                }
                readyVehicle = new Motorcycle(this.modelName, this.licenseNumber, this.energyLeft, licenseType, engineVolume);
                break;

            case eVehicleType.ElectricMotorcycle:

                if (!Enum.TryParse(i_ExtraData[0], out licenseType) || !Enum.IsDefined(typeof(eLicense), licenseType))
                {
                    throw new FormatException("License type can only contain the following values: " + ListEnumOptions(licenseType));
                }

                if (!int.TryParse(i_ExtraData[1], out engineVolume))
                {
                    throw new FormatException("Bad value for engine volume. Enter integer value");
                }
                readyVehicle = new ElectricMotorcycle(this.modelName, this.licenseNumber, this.energyLeft, licenseType, engineVolume);
                break;

            case eVehicleType.Truck:
                bool dangerousSubstances;
                if (!bool.TryParse(i_ExtraData[0], out dangerousSubstances))
                {
                    throw new FormatException("Can only accept true or false for dangerous substances");
                }
                float trunkVolume;
                if (!float.TryParse(i_ExtraData[1], out trunkVolume))
                {
                    throw new FormatException("Bad value for trunk volume. Enter float number");
                }
                readyVehicle = new Truck(this.modelName, this.licenseNumber, this.energyLeft, dangerousSubstances, trunkVolume);
                break;
            }
            return(readyVehicle);
        }
Example #30
0
        public ElectricMotorcycle createNewElectricMotorcycle(ElectricEngine i_ElectricEngine, eLicenseType i_LicenseType, int i_EngineCapacity, string i_ModelName, string i_LicenseNumber, float i_ThePercentageOfEnergyLeft, List <Wheel> i_Wheels)
        {
            ElectricMotorcycle electricMotorcycle = new ElectricMotorcycle(i_ElectricEngine, i_LicenseType, i_EngineCapacity, i_ModelName, i_LicenseNumber, i_ThePercentageOfEnergyLeft, i_Wheels);

            return(electricMotorcycle);
        }