コード例 #1
0
        public static Vehicle CreateNewVehicle(eTypeOfVehicle i_TypeOfVehicle)
        {
            Vehicle m_Vehicle = null;
            Fuel fuelSource = null;
            ElectricBattery electricSource = null;
            switch (i_TypeOfVehicle)
            {
                case eTypeOfVehicle.ElectricCar:
                    electricSource = new ElectricBattery(1.8f);
                    m_Vehicle = new Car(electricSource);
                    m_Vehicle.SetMaxAirPressureOfWheelInListOfWheels(32);
                    break;
                case eTypeOfVehicle.ElectricMotorcycle:
                    electricSource = new ElectricBattery(1.9f);
                    m_Vehicle = new Motorcycle(electricSource);
                    m_Vehicle.SetMaxAirPressureOfWheelInListOfWheels(29);
                    break;
                case eTypeOfVehicle.FuelCar:
                    fuelSource = new Fuel(48f);
                    fuelSource.FuelType = eFuelType.Octan95;
                    m_Vehicle = new Car(fuelSource);
                    m_Vehicle.SetMaxAirPressureOfWheelInListOfWheels(32);
                    break;
                case eTypeOfVehicle.FuelMotorcycle:
                    fuelSource = new Fuel(7.5f);
                    fuelSource.FuelType = eFuelType.Octan98;
                    m_Vehicle = new Motorcycle(fuelSource);
                    m_Vehicle.SetMaxAirPressureOfWheelInListOfWheels(29);
                    break;
                case eTypeOfVehicle.Truck:
                    fuelSource = new Fuel(190f);
                    fuelSource.FuelType = eFuelType.Soler;
                    m_Vehicle = new Truck(fuelSource);
                    m_Vehicle.SetMaxAirPressureOfWheelInListOfWheels(31);
                    break;
                default:
                    throw new ArgumentException("Invalid type of vehicle");
            }

            return m_Vehicle;
        }
コード例 #2
0
        /*7. Display vehicle information (License number, Model name, Owner name, Status in
         * garage, Tire specifications(manufacturer and air pressure), Fuel status + Fuel type
         * Battery status, other relevant information based on vehicle type)*/
        public List <object> GetFullVehicleDetails(string i_LicenseNumber)
        {
            List <object> fullDetails        = new List <object>();
            eVehicleType  vehicleType        = GetVehicleTypeByLicenseNumber(i_LicenseNumber);
            Vehicle       currentVehicle     = GetVehicleByLicense(i_LicenseNumber);
            VehicleInfo   currentVehicleInfo = GetVehicleInfoByLicense(i_LicenseNumber);

            fullDetails.Add(vehicleType);
            fullDetails.Add(currentVehicle.LicenseNumber);
            fullDetails.Add(currentVehicle.ModelName);
            fullDetails.Add(currentVehicleInfo.OwnerName);
            fullDetails.Add(currentVehicleInfo.OwnerPhoneNumber);
            fullDetails.Add(currentVehicleInfo.Status);
            fullDetails.Add(currentVehicle.Wheels[0].MaxAirPressure);

            switch (vehicleType)
            {
            case eVehicleType.ElectricBike:
            {
                ElectricBike electricBike = (ElectricBike)currentVehicle;
                fullDetails.Add(electricBike.LicenseType);
                fullDetails.Add(electricBike.EngineCCVolume);
                fullDetails.Add(electricBike.MaximalBatteryTime);
                fullDetails.Add(electricBike.RemainingBatteryTime);
                for (int i = 0; i < electricBike.Wheels.Count; i++)
                {
                    fullDetails.Add(electricBike.Wheels[i].CurrentAirPressure);
                    fullDetails.Add(electricBike.Wheels[i].ManufacturerName);
                }

                break;
            }

            case eVehicleType.ElectricCar:
            {
                ElectricCar electricCar = (ElectricCar)currentVehicle;
                fullDetails.Add(electricCar.CarColor);
                fullDetails.Add(electricCar.NumOfDoors);
                fullDetails.Add(electricCar.MaximalBatteryTime);
                fullDetails.Add(electricCar.RemainingBatteryTime);
                for (int i = 0; i < electricCar.Wheels.Count; i++)
                {
                    fullDetails.Add(electricCar.Wheels[i].CurrentAirPressure);
                    fullDetails.Add(electricCar.Wheels[i].ManufacturerName);
                }

                break;
            }

            case eVehicleType.FuelBike:
            {
                FuelBike fuelBike = (FuelBike)currentVehicle;
                fullDetails.Add(fuelBike.LicenseType);
                fullDetails.Add(fuelBike.EngineCCVolume);
                fullDetails.Add(fuelBike.EnergyType);
                fullDetails.Add(fuelBike.MaximalFuelLevel);
                fullDetails.Add(fuelBike.CurrentFuelLevel);
                for (int i = 0; i < fuelBike.Wheels.Count; i++)
                {
                    fullDetails.Add(fuelBike.Wheels[i].CurrentAirPressure);
                    fullDetails.Add(fuelBike.Wheels[i].ManufacturerName);
                }

                break;
            }

            case eVehicleType.FuelCar:
            {
                FuelCar fuelCar = (FuelCar)currentVehicle;
                fullDetails.Add(fuelCar.CarColor);
                fullDetails.Add(fuelCar.NumOfDoors);
                fullDetails.Add(fuelCar.EnergyType);
                fullDetails.Add(fuelCar.MaximalFuelLevel);
                fullDetails.Add(fuelCar.CurrentFuelLevel);
                for (int i = 0; i < fuelCar.Wheels.Count; i++)
                {
                    fullDetails.Add(fuelCar.Wheels[i].CurrentAirPressure);
                    fullDetails.Add(fuelCar.Wheels[i].ManufacturerName);
                }
                break;
            }

            case eVehicleType.Truck:
            {
                Truck truck = (Truck)currentVehicle;
                fullDetails.Add(truck.MaximalFuelLevel);
                fullDetails.Add(truck.CurrentFuelLevel);
                fullDetails.Add(truck.EnergyType);
                fullDetails.Add(truck.IsCarryingHazards);
                fullDetails.Add(truck.MaxLoadAllowed);
                for (int i = 0; i < truck.Wheels.Count; i++)
                {
                    fullDetails.Add(truck.Wheels[i].CurrentAirPressure);
                    fullDetails.Add(truck.Wheels[i].ManufacturerName);
                }
                break;
            }

            default:
            {
                break;
            }
            }

            return(fullDetails);
        }
コード例 #3
0
 public override void InitNewVehicle(Dictionary <string, VehicleParam> i_Parameters)
 {
     Init(i_Parameters, k_MaxLitersOfFuel, k_MaxPsiOfWheels, k_AmountOfWheels, k_FuelType);
     m_Truck = new Truck(i_Parameters);
 }
コード例 #4
0
        public static Vehicle CreateNewVehicle(Garage i_Garage, eVehicleTypes vehicleType, Dictionary <string, string> i_Properties)
        {
            Vehicle      i_Vehicle;
            bool         creationSuccess = false;
            string       modelName = "", licensePlate = "", manufacture = "";
            float        engineCapacity = 0, loadVolume = 0;
            bool         isCarryingDangerousLoad = false;
            eCarDoors    door        = eCarDoors.Five;
            eColor       color       = eColor.Black;
            eLicenseType licenseType = eLicenseType.A;

            foreach (KeyValuePair <string, string> pairs in i_Properties)
            {
                switch (pairs.Key)
                {
                case "Model Name":
                    modelName = pairs.Value;
                    break;

                case "License Plate":
                    licensePlate = pairs.Value;
                    break;

                case "Manufacture":
                    manufacture = pairs.Value;
                    break;

                case "Car Color":
                    eColor.TryParse(pairs.Value, out color);
                    break;

                case "Number of Doors":
                    eCarDoors.TryParse(pairs.Value, out door);
                    break;

                case "Engine Capacity CCS":
                    engineCapacity = float.Parse(pairs.Value);
                    break;

                case "License Type":
                    eLicenseType.TryParse(pairs.Value, out licenseType);
                    break;

                case "Is carrying dangerous load":
                    isCarryingDangerousLoad = bool.Parse(pairs.Value);
                    break;

                case "Load Volume":
                    loadVolume = float.Parse(pairs.Value);
                    break;
                }
            }

            switch (vehicleType)
            {
            case eVehicleTypes.ElectronicCar:
                i_Vehicle = new ElectricCar(modelName, licensePlate, color, door, manufacture);
                //ElectricCar.TryParse(i_Properties, out newVehicle);
                break;

            case eVehicleTypes.ElectronicMotorCycle:
                i_Vehicle = new ElectricMotorCycle(modelName, licensePlate, engineCapacity, eLicenseType.A1, manufacture);
                break;

            case eVehicleTypes.FuelCar:
                i_Vehicle = new FuelCar(modelName, licensePlate, color, door, manufacture);
                //FuelCar.TryParse(i_Properties, out newVehicle);
                break;

            case eVehicleTypes.FuelMotorCycle:
                i_Vehicle = new FuelMotorCycle(modelName, licensePlate, engineCapacity, licenseType, manufacture);
                break;

            case eVehicleTypes.Truck:
                i_Vehicle = new Truck(modelName, licensePlate, manufacture, isCarryingDangerousLoad, loadVolume);
                break;

            default:
                i_Vehicle = null;
                break;
            }
            return(i_Vehicle);
        }
コード例 #5
0
        public static FuelTruck createFuelTruck(Truck i_Truck, FuelVehicle.eFuelType i_FuelType, float i_CurrentAmountOfFuel, string i_Model, string i_LicensePlateNumber, float i_PercentOfRemainingEnergy, List <Tire> i_Tires)
        {
            FuelTruck newFuelTruck = new FuelTruck(i_Truck, i_FuelType, i_CurrentAmountOfFuel, i_Model, i_LicensePlateNumber, i_PercentOfRemainingEnergy, i_Tires);

            return(newFuelTruck);
        }
コード例 #6
0
        public static Truck createTruck(bool i_CarrierDangerousMaterials, float i_MaximumCarryingWeight)
        {
            Truck newTruck = new Truck(i_CarrierDangerousMaterials, i_MaximumCarryingWeight);

            return(newTruck);
        }
コード例 #7
0
        public static Vehicle MakeNewVehicle(eEnergyType i_EnergyType, eVehicleType i_VehicleType, string i_Model,
                                             string i_LicenseNumber, float[] i_WheelsAirPressure,
                                             string i_WheelsManufacturer, float i_CurrentEnrgeyLevel,
                                             string i_OwnerPhoneNumber, string i_OwnerName, object [] i_VehicleParameters)

        {
            Vehicle newVehicle = null;
            //i_WheelsAirPressure = new float[2] {1,2};
            float       energyPrecentage;
            PowerSystem powerSystem;

            switch (i_VehicleType)
            {
            case eVehicleType.Car:
            {
                if (i_EnergyType != eEnergyType.Electric)
                {
                    powerSystem      = new FeulPowerSystem(i_CurrentEnrgeyLevel, k_CarMaxGasCapacity, i_EnergyType);
                    energyPrecentage = (i_CurrentEnrgeyLevel / k_CarMaxGasCapacity) * 100;
                }
                else
                {
                    powerSystem      = new ElectricPowerSystem(i_CurrentEnrgeyLevel, k_CarMaxBatteryCapacity);
                    energyPrecentage = (i_CurrentEnrgeyLevel / k_CarMaxBatteryCapacity) * 100;
                }
                newVehicle = new Car(powerSystem, i_Model,
                                     i_LicenseNumber, energyPrecentage, k_CarWheelsAmount, i_WheelsAirPressure,
                                     k_CarWheelsMaxAirPressure,
                                     i_WheelsManufacturer, i_OwnerPhoneNumber, i_OwnerName);


                (newVehicle as Car).m_Color      = (eCarColor)i_VehicleParameters[0];
                (newVehicle as Car).m_NumOfDoors = (int)i_VehicleParameters[1];
            }
            break;

            case eVehicleType.Motorcycle:
            {
                if (i_EnergyType != eEnergyType.Electric)
                {
                    powerSystem      = new FeulPowerSystem(i_CurrentEnrgeyLevel, k_MotorcycleMaxGasCapacity, i_EnergyType);
                    energyPrecentage = (i_CurrentEnrgeyLevel / k_MotorcycleMaxGasCapacity) * 100;
                }
                else
                {
                    powerSystem      = new ElectricPowerSystem(i_CurrentEnrgeyLevel, k_MotorcycleMaxBatteryCapacity);
                    energyPrecentage = (i_CurrentEnrgeyLevel / k_MotorcycleMaxBatteryCapacity) * 100;
                }
                newVehicle = new Motorcycle(powerSystem, i_Model,
                                            i_LicenseNumber, energyPrecentage, k_MotorcycleWheelsAmount, i_WheelsAirPressure,
                                            k_MotorcycleWheelsMaxAirPressure,
                                            i_WheelsManufacturer, i_OwnerPhoneNumber, i_OwnerName);

                (newVehicle as Motorcycle).m_LicenseType    = (eLicenseType)i_VehicleParameters[0];
                (newVehicle as Motorcycle).m_EngineCapacity = (int)i_VehicleParameters[1];
            }
            break;

            case eVehicleType.Truck:
            {
                if (i_EnergyType != eEnergyType.Electric)
                {
                    powerSystem      = new FeulPowerSystem(i_CurrentEnrgeyLevel, k_TruckMaxGasCapacity, i_EnergyType);
                    energyPrecentage = (i_CurrentEnrgeyLevel / k_TruckMaxGasCapacity) * 100;
                }
                else
                {
                    powerSystem      = new ElectricPowerSystem(i_CurrentEnrgeyLevel, k_TruckMaxGasCapacity);
                    energyPrecentage = (i_CurrentEnrgeyLevel / k_TruckMaxGasCapacity) * 100;
                }
                newVehicle = new Truck(powerSystem, i_Model,
                                       i_LicenseNumber, energyPrecentage, k_TruckWheelsAmount, i_WheelsAirPressure,
                                       k_TruckWheelsMaxAirPressure,
                                       i_WheelsManufacturer, i_OwnerPhoneNumber, i_OwnerName);

                (newVehicle as Truck).m_IsCarryingDangerousMeterials = (bool)i_VehicleParameters[0];
                (newVehicle as Truck).m_CargoCapacity = (int)i_VehicleParameters[1];
            }
            break;
            }

            return(newVehicle);
        }
コード例 #8
0
        /**
         * (1) Insert new vehicle
         */
        public Vehicle CreateVehicleObject(
            eVehicle i_TypeOfVehicle,
            string i_ModelName,
            string i_LicenseNumber,
            string i_OwnerPhoneNumber,
            string i_OwnerName,
            string i_WheelManufacturer,
            float i_CurrentAirPressure,
            float i_CurrentCapacity,
            List <object> i_ExtraProperties)
        {
            Vehicle newVehicle = null;

            try
            {
                if (i_TypeOfVehicle == eVehicle.FuelMotorcycle || i_TypeOfVehicle == eVehicle.ElectricMotorcycle)
                {
                    Motorcycle newMotorcycle = new Motorcycle(
                        i_TypeOfVehicle,
                        i_ModelName,
                        i_LicenseNumber,
                        i_OwnerPhoneNumber,
                        i_OwnerName,
                        i_WheelManufacturer,
                        i_CurrentAirPressure,
                        i_CurrentCapacity);
                    newMotorcycle.LicenseType  = (eLicenseType)i_ExtraProperties[0];
                    newMotorcycle.EngineVolume = (int)i_ExtraProperties[1];
                    newVehicle = newMotorcycle;
                }

                if (i_TypeOfVehicle == eVehicle.FuelCar || i_TypeOfVehicle == eVehicle.ElectricCar)
                {
                    Car newCar = new Car(
                        i_TypeOfVehicle,
                        i_ModelName,
                        i_LicenseNumber,
                        i_OwnerPhoneNumber,
                        i_OwnerName,
                        i_WheelManufacturer,
                        i_CurrentAirPressure,
                        i_CurrentCapacity);
                    newCar.CarColor         = (eCarColor)i_ExtraProperties[0];
                    newCar.NumberOfCarDoors = (eCarDoors)i_ExtraProperties[1];
                    newVehicle = newCar;
                }

                if (i_TypeOfVehicle == eVehicle.Truck)
                {
                    Truck newTruck = new Truck(
                        i_TypeOfVehicle,
                        i_ModelName,
                        i_LicenseNumber,
                        i_OwnerPhoneNumber,
                        i_OwnerName,
                        i_WheelManufacturer,
                        i_CurrentAirPressure,
                        i_CurrentCapacity);
                    newTruck.ContainsDangerousMaterials = (bool)i_ExtraProperties[0];
                    newTruck.VolumeOfCargo = (float)i_ExtraProperties[1];

                    newVehicle = newTruck;
                }

                if (i_TypeOfVehicle == eVehicle.Generic)
                {
                    Generic newGeneric = new Generic(
                        i_TypeOfVehicle,
                        i_ModelName,
                        i_LicenseNumber,
                        i_OwnerPhoneNumber,
                        i_OwnerName,
                        i_WheelManufacturer,
                        i_CurrentAirPressure,
                        i_CurrentCapacity,
                        (float)i_ExtraProperties[0],
                        (int)i_ExtraProperties[1],
                        (float)i_ExtraProperties[2],
                        (eFuelType)i_ExtraProperties[3]);
                    newVehicle = newGeneric;
                }

                // float i_CurrentCapacity,
                // float i_MaxAirPressure,
                // int i_NumberOfWheels,
                // float i_MaxCapacity,
                //     eFuelType i_FuelType)
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }

            return(newVehicle);
        }
コード例 #9
0
ファイル: FuelTruck.cs プロジェクト: guy501/Garage_project
 public FuelTruck(Truck i_Truck, FuelVehicle.eFuelType i_FuelType, float i_CurrentAmountOfFuel, string i_Model, string i_LicensePlateNumber, float i_PercentOfRemainingEnergy, List <Tire> i_Tires)
     : base(i_FuelType, i_CurrentAmountOfFuel, i_Model, i_LicensePlateNumber, i_PercentOfRemainingEnergy, i_Tires, k_MaxAmountOfFuel)
 {
     m_Properties.Add(new Property("Max amount of fuel", typeof(float)), k_MaxAmountOfFuel);
     m_Truck = i_Truck;
 }