private EnergySource getEnergySourceFromUser(bool i_ForTruck) { DataInputScreen dataInputScreen = r_Screens[eUIScreens.DataInput] as DataInputScreen; eEnergySource energySourceType = eEnergySource.Fuel; EnergySource energySource = null; if (!i_ForTruck) { MenuScreen energySourceScreen = r_Screens[eUIScreens.EnergySource] as MenuScreen; energySourceScreen.Display(out string energySourInput); energySourceType = (eEnergySource)parseMenuOption(energySourInput); } if (energySourceType == eEnergySource.Fuel) { MenuScreen FuelType = r_Screens[eUIScreens.FuelType] as MenuScreen; FuelType.Display(out string fuelTypeStr); eFuel fuel = (eFuel)parseMenuOption(fuelTypeStr); dataInputScreen.SetMassageToDisplay("Enter Fuel Tank Capacity"); dataInputScreen.Display(out string fuelTankCapacity); float capacity = float.Parse(fuelTankCapacity); energySource = new FuelTank(fuel, capacity); } else { dataInputScreen.SetMassageToDisplay("Enter Maximum Time Capacity"); dataInputScreen.Display(out string timeCapacity); float capacity = float.Parse(timeCapacity); energySource = new Battery(capacity); } return(energySource); }
public bool FuelingVehicle(string i_LicenseNumber, eFuel i_Fual, int i_AmountToFaul) { if (!VehicleInGarage(i_LicenseNumber)) { throw new ArgumentNullException("This Vehicle doesn't exist in the garage \n"); } UserDetails currentUserDetails = m_GarageList[i_LicenseNumber]; Vehicle vehicleToFaul = currentUserDetails.Vehicle; Engine engineToFaul = vehicleToFaul.VehicleEngine; FuelEngine fuelEngine = engineToFaul as FuelEngine; if (fuelEngine == null) { throw new ArgumentException("This is not fuel car \n"); } eFuel correctFuel = fuelEngine.FuelType; if (!correctFuel.Equals(i_Fual)) { throw new ArgumentException("You entered wrong fuel type"); } bool tryToFuel = fuelEngine.Fill(i_AmountToFaul, i_Fual); return(tryToFuel); }
public void RefuelEnergy(eFuel i_FuelType, float i_FuelAmountToAdd) { FuelVehicle vehicle = this as FuelVehicle; if (vehicle != null) { vehicle.Refuel(i_FuelAmountToAdd, i_FuelType); updateLeftedEnergyPrecent(vehicle.Energy); } }
public bool Fill(int i_Amount, eFuel i_FuelType) { bool fullTank = base.EnergyLeft + i_Amount > base.Capacity && this.fuelType == i_FuelType; if (!fullTank) { base.EnergyLeft += i_Amount; } else { throw new ValueOutOfRangeException(0, base.Capacity - base.EnergyLeft); } return(fullTank); }
internal void FillFuel(eFuel i_FuelToFill, float i_HowMuchToFill) { float maxAmountPossibleToAdd; if (i_FuelToFill != r_Fuel) { throw new ArgumentException("The fuel you entered doesn't fit the vehicle fuel type"); } if (!CheckAddFuel(i_HowMuchToFill, out maxAmountPossibleToAdd)) { throw new ValueOutOfRangeException(0, maxAmountPossibleToAdd); } CurrAmountOfFuel += i_HowMuchToFill; }
public static void FuelVehical(Garage i_MyGarage) { string userAnswer = string.Empty; string licenseNum = GarageUI.AskForLicenseNum(); bool validFuel = !true; eFuel fuelType = 0; Console.WriteLine("Please enter fuel type <Octan98, Octan96, Octan95, Soler>"); while (!validFuel) { try { validFuel = true; userAnswer = Console.ReadLine(); fuelType = UIValidation.FuelTypeValidation(userAnswer); } catch (FormatException fe) { Console.WriteLine(fe.Message + "Wrong choise, please select fuel type <Octan98, Octan96, Octan95, Soler> "); validFuel = !true; } } int fuelAmount = 0; Console.WriteLine("Please enter fuel amount"); fuelAmount = GarageUI.AskForAmount(); try { bool fuelSucceses = i_MyGarage.FuelingVehicle(licenseNum, fuelType, fuelAmount); Console.WriteLine("Fuel success \n"); } catch (ArgumentNullException ane) { Console.WriteLine("The car is not in the garage \n"); } catch (ArgumentException ax) { Console.WriteLine(ax.Message + " Fuel faild"); } catch (ValueOutOfRangeException vor) { Console.WriteLine(vor.Message + " Fuel faild"); } }
public void Charge(float i_Liters, eFuel i_FuelType) { float expectedAmountOfFuel = i_Liters + m_CurrentCampacity; if (!i_FuelType.Equals(m_FuelType)) { throw new ArgumentException("You are trying to add wrong fuel to the vehicle"); } else if (m_CurrentCampacity < v_MinCampacity || r_MaxCampacity < expectedAmountOfFuel) { throw new ValueOutOfRangeException(0, r_MaxCampacity - m_CurrentCampacity, expectedAmountOfFuel); } else { m_CurrentCampacity = expectedAmountOfFuel; } }
public string GetVehicleInformation(string i_LicenseNumber) { if (!VehicleInGarage(i_LicenseNumber)) { throw new ArgumentNullException("This Vehicle doesn't exist in the garage \n"); } UserDetails userDetaile = m_GarageList[i_LicenseNumber]; string nameOfModel = userDetaile.Vehicle.ModelName; string ownerName = userDetaile.UserName; string vehicleCondition = userDetaile.vehicleCondition; List <Wheel> listOfWheels = userDetaile.Vehicle.WheelList; int numOfWheels = listOfWheels.Count; string currentWheelSituation = GetWheelsInformation(listOfWheels); string vehicleInformation = string.Format("Information about vevhicle number {0} : \n" + "Model : {1} \nOwner Name : {2} \nCar Condition : {3} \nThere are {4} Wheels :\n" + "{5}", i_LicenseNumber, nameOfModel, ownerName, vehicleCondition, numOfWheels, currentWheelSituation.ToString()); Vehicle currentVehicle = userDetaile.Vehicle; Engine currentEnginVehicle = currentVehicle.VehicleEngine; FuelEngine checkEngine = currentEnginVehicle as FuelEngine; string engineStatus = string.Empty; if (checkEngine == null) { ElectricEngine electricEngine = currentEnginVehicle as ElectricEngine; float energyLeft = electricEngine.EnergyLeft; engineStatus = string.Format("Battary statuse : {0} hours left\n", energyLeft); } else { eFuel kindOfFuel = checkEngine.FuelType; float energyLeft = checkEngine.EnergyLeft; engineStatus = string.Format("Fuel statuse : {0} , {1} liters left\n", kindOfFuel, energyLeft); } return(vehicleInformation + engineStatus); }
public void Refuel(float i_FuelLitersToAdd, eFuel i_FuelType) { if (i_FuelType == m_FuelType) { float newFuel = this.Energy.CurrentEnergy + i_FuelLitersToAdd; if (newFuel <= this.Energy.MaxEnergy && newFuel >= 0) { this.Energy.CurrentEnergy = newFuel; } else { throw new ValueOutOfRangeException( this.Energy.MaxEnergy, 0, string.Format("Max feul energy exceeded, Value out of range - {0}. The battery was not loaded.", newFuel)); } } else { throw new ArgumentException(string.Format("Fuel Type '{0}' is not fit to requested fuel type '{1}'", i_FuelType, FuelType)); } }
public void FuelVehicle(string i_LicenseNumber, eFuel i_FuelType, float i_AmountOFuelToAdd) { VehicleInfo vehicleInfo = r_Vehicles[i_LicenseNumber]; if (vehicleInfo.Vehicle != null) { FuelTank fuelTank = vehicleInfo.Vehicle.EnergySource as FuelTank; if (i_FuelType == fuelTank.FuelType) { fuelTank.Fuel(i_AmountOFuelToAdd); } else { throw new FuelTypeException(i_FuelType, fuelTank.FuelType); } } else { throw new VehicleNotExistException(i_LicenseNumber); } }
public Truck(eFuel i_FuelType, float i_MaxFuelCapacity, eWheels i_NumOfWheels, float i_MaxAirPressure) : base(i_FuelType, i_MaxFuelCapacity, i_NumOfWheels, i_MaxAirPressure) { }
public FuelEngine(eFuel i_FuelType, float i_EnergyLeft, float i_Capacity) : base(i_EnergyLeft, i_Capacity) { this.fuelType = i_FuelType; }
public FuelEnergy(eFuel i_FuelType, float i_MaxAmountOfFuel) : base(i_MaxAmountOfFuel) { m_FuelType = i_FuelType; }
public FuelVehicle(eFuel i_FuelType, float i_MaxFuelCapacity, eWheels i_NumOfWheels, float i_MaxAirPressure) : base(i_MaxFuelCapacity, i_NumOfWheels, i_MaxAirPressure) { m_FuelType = i_FuelType; }
public FuelTank(eFuel i_FuelType, float i_FuelCapacity) : base(i_FuelCapacity) { r_FuelType = i_FuelType; }
public FuelMotorcycle(eFuel i_FuelType, float i_MaxFuelCapacity, eWheels i_NumOfWheels, float i_MaxAirPressure) : base(i_FuelType, i_MaxFuelCapacity, i_NumOfWheels, i_MaxAirPressure) { m_MotorcycleDetails = new MotorcycleDetails(); }
public FuelCar(eFuel i_FuelType, float i_MaxFuelCapacity, eWheels i_NumOfWheels, float i_MaxAirPressure) : base(i_FuelType, i_MaxFuelCapacity, i_NumOfWheels, i_MaxAirPressure) { m_CarDetails = new CarDetails(); }
public FuelTypeException(eFuel i_InputFuel, eFuel i_RequiredFuel) : base() { r_InputFuel = i_InputFuel; r_RequiredFuel = i_RequiredFuel; }
public FuelTank(float i_MaxCampacity, float i_CurrentCampacity, eFuel i_FuelType) : base(i_MaxCampacity, i_CurrentCampacity) { m_FuelType = i_FuelType; }
public FuelVehicle(string i_ModelName, string i_LicensePlateNumber, int i_NumOfWheels, float i_MaxPressureLevelForWheel, float i_MaxAmountOfFuel, eFuel i_Fuel) : base(i_ModelName, i_LicensePlateNumber, i_NumOfWheels, i_MaxPressureLevelForWheel) { r_MaxAmountOfFuel = i_MaxAmountOfFuel; r_Fuel = i_Fuel; }