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; }
/*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); }
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); }
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); }
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); }
public static Truck createTruck(bool i_CarrierDangerousMaterials, float i_MaximumCarryingWeight) { Truck newTruck = new Truck(i_CarrierDangerousMaterials, i_MaximumCarryingWeight); return(newTruck); }
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); }
/** * (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); }
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; }