public static float GetMaxAirPressure(VehicleFactory.eVehicleType i_VehicleType) { float maxAirPressure; switch (i_VehicleType) { case VehicleFactory.eVehicleType.Motor: case VehicleFactory.eVehicleType.ElectricMotor: maxAirPressure = Motor.k_MaxAirPressure; break; case VehicleFactory.eVehicleType.Car: case VehicleFactory.eVehicleType.ElectricCar: maxAirPressure = Car.k_MaxAirPressure; break; case VehicleFactory.eVehicleType.Truck: maxAirPressure = Truck.k_MaxAirPressure; break; default: throw new System.ArgumentOutOfRangeException(nameof(i_VehicleType), i_VehicleType, null); } return(maxAirPressure); }
private List <string> getVehicleParametersFromUser(string i_VehicleLicenseNumber) { VehicleFactory.eVehicleType vehicleType = this.getVehicleType(); List <string> vehicleParameters = new List <string> { vehicleType.ToString(), this.getRegularParameterDetails( @"Please insert the vehicle's model name.", ParameterChecker.eExpectedInputType.All), i_VehicleLicenseNumber, this.getRangeParametersDetails( @"Please insert how much energy \ fuel left (0 to 100%) in the vehicle.", k_MinValue, Utilities.k_MaxPercentage), this.getRegularParameterDetails( "Please type the tires' manufacture name.", ParameterChecker.eExpectedInputType.All), this.getRangeParametersDetails( "Please enter the vehicle's current tire's air pressure.", k_MinValue, Vehicle.GetMaxAirPressure(vehicleType)) }; List <ParameterChecker> extraParameterInfo = VehicleFactory.BuildExtraParametersInfo(vehicleType); this.getExtraVehicleParameters(vehicleParameters, extraParameterInfo); return(vehicleParameters); }
private Vehicle createNewVehicle(string i_UserPlateNumber) { bool isVehicleTypeValid = false; Vehicle newVehicle; VehicleFactory.eVehicleType newVehicleType = VehicleFactory.eVehicleType.FuelCar; string userChoice; Console.WriteLine("{0}Please Enter the following information: {0}", Environment.NewLine); this.printMultiChoiceList(VehicleFactory.VehicleTypeKey, Enum.GetNames(typeof(VehicleFactory.eVehicleType))); this.printEnterChoiceMsg(); do { try { userChoice = Console.ReadLine(); newVehicleType = LogicUtils.EnumValidation <VehicleFactory.eVehicleType>(userChoice, VehicleFactory.VehicleTypeKey); isVehicleTypeValid = true; } catch (Exception exception) { Console.WriteLine(exception.Message); } }while (!isVehicleTypeValid); newVehicle = VehicleFactory.CreateVehicle(i_UserPlateNumber, newVehicleType); this.setVehicleInfo(newVehicle, newVehicleType); return(newVehicle); }
private VehicleFactory.eVehicleType getVehicleType() { Console.WriteLine("Please choose vehicle type."); printEnumList(new VehicleFactory.eVehicleType()); string vehicleTypeString = Console.ReadLine(); VehicleFactory.eVehicleType vehicleType = VehicleFactory.CheckVehicleType(vehicleTypeString); return(vehicleType); }
private VehicleFactory.eVehicleType getVehicleTypeFromUser() { Console.WriteLine("Please choose vehicle type from the menu below: "); printEnumList(new VehicleFactory.eVehicleType()); string vehicleTypeString = Console.ReadLine(); VehicleFactory.eVehicleType vehicleType = VehicleFactory.GetVehicleTypeFromStr(vehicleTypeString); return(vehicleType); }
private void setVehicleInfo(Vehicle i_VehicleToUpdate, VehicleFactory.eVehicleType i_vehicleType) { float currentAirPressure; Console.Write("Model: "); i_VehicleToUpdate.ModelName = Console.ReadLine().Trim(); i_VehicleToUpdate.Energy.CurrentEnergy = this.getNumericInput(i_VehicleToUpdate.Energy.MaxCapacity, string.Format("{0}: ", i_VehicleToUpdate.Energy.EnergyUnits()).ToString()); currentAirPressure = this.getNumericInput(i_VehicleToUpdate.TiresList[0].MaxAirPressure, "Tires air pressure: "); Console.Write("Tiers manufacturer's name: "); i_VehicleToUpdate.UpdateTiresInfo(currentAirPressure, Console.ReadLine().Trim()); this.setVehicleUniqueInfo(i_VehicleToUpdate, i_vehicleType); }
protected Vehicle(VehicleFactory.eVehicleType i_VehicleType, string i_ModelName, string i_LicenseNumber, Tire[] i_Tires, Engine i_Engine, float i_EnergyPercentageLeft, string i_TireManufactureName, float i_MaxAirPressure, float i_TireCurrentAirPressure) { r_VehicleType = i_VehicleType; r_ModelName = i_ModelName; r_LicenseNumber = i_LicenseNumber; r_Tires = i_Tires; r_Engine = i_Engine; EnergyPercentageLeft = i_EnergyPercentageLeft; for (int currentTire = 0; currentTire < i_Tires.Length; currentTire++) { Tires[currentTire] = new Tire(i_TireManufactureName, i_MaxAirPressure, i_TireCurrentAirPressure); } }
public EnergySource.eEnergyType GetEnergySourceByVehicleType(VehicleFactory.eVehicleType i_VehicleType) { EnergySource.eEnergyType energyType; if (i_VehicleType == VehicleFactory.eVehicleType.ElectricCar || i_VehicleType == VehicleFactory.eVehicleType.ElectricMotorcycle) { energyType = EnergySource.eEnergyType.Electric; } else { energyType = EnergySource.eEnergyType.Fuel; } return(energyType); }
public Car( VehicleFactory.eVehicleType i_VehicleType, string i_ModelName, string i_LicenseNumber, Tire[] i_Tires, Engine i_Engine, float i_EnergyPercentageLeft, string i_TireManufactureName, float i_TireCurrentAirPressure, eCarColors i_CarColor, eNumberOfDoors i_NumOfDoors) : base(i_VehicleType, i_ModelName, i_LicenseNumber, i_Tires, i_Engine, i_EnergyPercentageLeft, i_TireManufactureName, k_MaxAirPressure, i_TireCurrentAirPressure) { r_CarColor = i_CarColor; r_NumOfDoors = i_NumOfDoors; }
private Dictionary <eVehicleInfoParams, string> getVehicleInfoFromUser(string i_LicenseNumber) { VehicleFactory.eVehicleType vehicleType = this.getVehicleTypeFromUser(); Dictionary <eVehicleInfoParams, string> vehicleParameters = new Dictionary <eVehicleInfoParams, string> { { eVehicleInfoParams.vehicleType, vehicleType.ToString() }, { eVehicleInfoParams.modelName, getParameterDetailFromUser(@"Please enter the vehicle's model name: ", ParameterValidator.eValidityTypes.All) }, { eVehicleInfoParams.licenseNumber, i_LicenseNumber }, { eVehicleInfoParams.energyPercentageLeft, getParametersAndCheckRange(@"Please insert how much energy \ fuel left (0 to 100%) in the vehicle: ", GarageManager.k_MinPrecentageValue, GarageManager.k_MaxPrecentageValue) }, { eVehicleInfoParams.wheelManufactureName, getParameterDetailFromUser("Please enter the wheels' manufacture name: ", ParameterValidator.eValidityTypes.All) }, { eVehicleInfoParams.wheelCurrentAirPressure, getParametersAndCheckRange(@"Please enter the vehicle's current tire's air pressure: ", GarageManager.k_MinPrecentageValue, Vehicle.GetMaxAirPressure(vehicleType)) } }; Dictionary <eVehicleInfoParams, ParameterValidator> extraParameterInfo = VehicleFactory.GetSpecificTypeParamsList(vehicleType); setExtraVehicleInfo(vehicleParameters, extraParameterInfo); return(vehicleParameters); }
private void setVehicleUniqueInfo(Vehicle i_VehicleToUpdate, VehicleFactory.eVehicleType i_vehicleType) { Dictionary <string, string[]> uniqueAttributesDictionary = i_VehicleToUpdate.GetUniqueAtttributesDictionary(); List <string> userInputAttributes = new List <string>(uniqueAttributesDictionary.Count); int attributeValuesNum; foreach (string key in uniqueAttributesDictionary.Keys) { attributeValuesNum = uniqueAttributesDictionary[key].Length; if (attributeValuesNum > 1) { this.printMultiChoiceList(key, uniqueAttributesDictionary[key]); this.printEnterChoiceMsg(); } else { Console.Write("Enter {0}: ", key); } this.setVehicleUniquePropertyInput(i_VehicleToUpdate, key); } }
public Truck(VehicleFactory.eVehicleType i_VehicleType, string i_ModelName, string i_LicenseNumber, Tire[] i_Tires, Engine i_Engine, float i_EnergyPercentageLeft, string i_TireManufactureName, float i_TireCurrentAirPressure, float i_MaxCarryingWeight, bool i_IsContainingHazardMaterials) : base(i_VehicleType, i_ModelName, i_LicenseNumber, i_Tires, i_Engine, i_EnergyPercentageLeft, i_TireManufactureName, k_MaxAirPressure, i_TireCurrentAirPressure) { r_MaxCarryingWeight = i_MaxCarryingWeight; IsContainingHazardMaterials = i_IsContainingHazardMaterials; }
public Vehicle CreateVehicle(VehicleFactory.eVehicleType i_VehicleType, string i_Model, string i_LicensePlate, string i_WheelManufacturer, float i_CurentAirPreasure, float i_CurrentEnergy) { return(m_vehicleCreator.CreateVehicle(i_VehicleType, i_Model, i_LicensePlate, i_WheelManufacturer, i_CurentAirPreasure, i_CurrentEnergy)); }
public Bike(VehicleFactory.eVehicleType i_VehicleType, string i_ModelName, string i_LicenseNumber, Tire[] i_Tires, Engine i_Engine, float i_EnergyPercentageLeft, string i_TireManufactureName, float i_TireCurrentAirPressure, eLicenseType i_LicenseType, float i_EngineCapacity) : base(i_VehicleType, i_ModelName, i_LicenseNumber, i_Tires, i_Engine, i_EnergyPercentageLeft, i_TireManufactureName, k_MaxAirPressure, i_TireCurrentAirPressure) { r_LicenseType = i_LicenseType; r_EngineCapacity = i_EngineCapacity; }