private static void changeExistingVehicleStatus(string existingVehicleNumber, Ex03.GarageLogic.GarageManager i_GarageManager) { Ex03.GarageLogic.GarageManager.eVehicleInGarageStatus validVehicleStatus; string stringValidVehicleStatus = getEnumStringFromEnumValues(typeof(Ex03.GarageLogic.GarageManager.eVehicleInGarageStatus)); validVehicleStatus = (Ex03.GarageLogic.GarageManager.eVehicleInGarageStatus)System.Enum.Parse(typeof(Ex03.GarageLogic.GarageManager.eVehicleInGarageStatus), stringValidVehicleStatus); i_GarageManager.GetVehicleInTreatmentDetailsByExistingVehicleNumber(existingVehicleNumber).VehicleInTreatmentStatus = validVehicleStatus; }
private static void presentTheNumbersofVehiclesInGarageByStatus(Ex03.GarageLogic.GarageManager i_GarageManager) { string stringStatusFilterType = getEnumStringFromEnumValues(typeof(Ex03.GarageLogic.GarageManager.eVehicleInGarageStatus)); Ex03.GarageLogic.GarageManager.eVehicleInGarageStatus vehicleStatusFilterType = (Ex03.GarageLogic.GarageManager.eVehicleInGarageStatus)System.Enum.Parse(typeof(Ex03.GarageLogic.GarageManager.eVehicleInGarageStatus), stringStatusFilterType); List <string> arrayOfVehiclesNumbersByFilter = i_GarageManager.GenerateVehiclesNumbersListByFilterType(vehicleStatusFilterType); auxPresentTheNumbersOfTheVehiclesinVehicleList(arrayOfVehiclesNumbersByFilter, vehicleStatusFilterType); }
/// <summary> /// This function tries to fuel a vehicle of input number and catches 3 optional exceptions: /// 1. <remarks>ArgumentException</remarks> in case of trying to charge a car that works on gas /// 2. <remarks>ValueOutOfRangeException</remarks> in case the charging action will exceed the maximum battery time charge allowed /// </summary> /// <param name="i_ExistingVehicleNumber"></param> /// <param name="i_GarageManager"></param> private static void chargeElectricalVehicle(string i_ExistingVehicleNumber, Ex03.GarageLogic.GarageManager i_GarageManager) { System.Console.WriteLine("Please enter time to charge in hours"); float amountOfMinutesToCharge = getPositiveValidFloat(); System.Console.WriteLine(); try { i_GarageManager.ChargeElectricVehicle(i_ExistingVehicleNumber, amountOfMinutesToCharge); System.Console.WriteLine("Success: the vehicle battery was charged in {0} hours", amountOfMinutesToCharge); } catch (Exception ex) { System.Console.WriteLine(ex.Message); } }
private static void pumpVehicleWheelsToMaximum(string i_ExistingVehicleNumber, Ex03.GarageLogic.GarageManager i_GarageManager) { do { try { i_GarageManager.PumpVehicleWheelsToMaximum(i_ExistingVehicleNumber); System.Console.WriteLine("Succes: wheels' air pressure is pumped to maximum"); break; } catch (Ex03.GarageLogic.ValueOutOfRangeException outOfRangeException) { System.Console.WriteLine(outOfRangeException.Message); } }while (true); }
public static void PerformUserSelection(eMainMenuEnum i_UserOptionSelection, Ex03.GarageLogic.GarageManager i_GarageManager) { string existingVehicleNumber = null; if (i_UserOptionSelection >= eMainMenuEnum.ChangeExistingVehicleStatus && i_UserOptionSelection <= eMainMenuEnum.PresentFullVehicleDetails) { existingVehicleNumber = auxGetExistingVehicleNumber(i_GarageManager); } switch (i_UserOptionSelection) { case eMainMenuEnum.InsertVehicleToGarage: insertVehicleToGarage(existingVehicleNumber, i_GarageManager); break; case eMainMenuEnum.PresentTheNumbersOfVehiclesInGarageByStatus: presentTheNumbersofVehiclesInGarageByStatus(i_GarageManager); break; case eMainMenuEnum.ChangeExistingVehicleStatus: changeExistingVehicleStatus(existingVehicleNumber, i_GarageManager); break; case eMainMenuEnum.PumpVehicleWheelsToMaximum: pumpVehicleWheelsToMaximum(existingVehicleNumber, i_GarageManager); break; case eMainMenuEnum.FuelGasVehicle: fuelGasVehicle(existingVehicleNumber, i_GarageManager); break; case eMainMenuEnum.ChargeElectricVehicle: chargeElectricalVehicle(existingVehicleNumber, i_GarageManager); break; case eMainMenuEnum.PresentFullVehicleDetails: presentFullVehicleDetails(existingVehicleNumber, i_GarageManager); break; case eMainMenuEnum.ExitMenu: exitMenu(); break; default: break; } }
/// <summary> /// This function tries to fuel a vehicle of input number and catches 3 optional exceptions: /// 1. <remarks>ArgumentException</remarks> in case of trying to fuel electric car /// 2. <remarks>ArgumentException</remarks> in case of trying to fuel car with mismatching fuel type /// 3. <remarks>ValueOutOfRange</remarks> Exception in case of the action of fueling will exceed the maximum fuel tank's capacity /// </summary> /// <param name="i_ExistingVehicleNumber"></param> /// <param name="i_GarageManager"></param> private static void fuelGasVehicle(string i_ExistingVehicleNumber, Ex03.GarageLogic.GarageManager i_GarageManager) { Ex03.GarageLogic.FuelTank.eFuelType fuelType = auxGetFuelType(); System.Console.WriteLine("Please enter amount of fuel (in Liters) to fuel"); float amountOfLitersToFuel = getPositiveValidFloat(); System.Console.WriteLine(); try { i_GarageManager.FuelGasVehicle(i_ExistingVehicleNumber, fuelType, amountOfLitersToFuel); System.Console.WriteLine("Succes: vehicle was fueled succesfully with {0} liters..." + Environment.NewLine, amountOfLitersToFuel); } catch (Exception ex) { System.Console.WriteLine(ex.Message); } }
private static void insertVehicleToGarage(string existingVehicleNumber, Ex03.GarageLogic.GarageManager i_GarageManager) { Ex03.GarageLogic.VehicleGenerator.eVehicleToGenerate vehicleToGenerateType; string validVehicleNumber = auxGetValidVehicleNumber(); bool isVehicleAlreadyExistsInGarage = i_GarageManager.IsVehicleExistsInGarage(validVehicleNumber); if (!isVehicleAlreadyExistsInGarage) { string vehicleOwnerName, vehicleOwnerPhoneNumber; auxGetValidVehicleOwnerAndHisPhoneNumber(out vehicleOwnerName, out vehicleOwnerPhoneNumber); List <string> vehicleToInsertData = auxGetDataOfVehicleToInsert(out vehicleToGenerateType); vehicleToInsertData.Insert(0, validVehicleNumber); Ex03.GarageLogic.Vehicle vehicleToInsert = Ex03.GarageLogic.VehicleGenerator.GenerateNewVehicle(vehicleToGenerateType, vehicleToInsertData); i_GarageManager.InsertVehicleToGarage(vehicleToInsert, vehicleOwnerName, vehicleOwnerPhoneNumber); System.Console.WriteLine(Environment.NewLine + "The vehicle was successfuly added to the garage..." + Environment.NewLine); } else { i_GarageManager.GetVehicleInTreatmentDetailsByExistingVehicleNumber(existingVehicleNumber).VehicleInTreatmentStatus = Ex03.GarageLogic.GarageManager.eVehicleInGarageStatus.InRepair; System.Console.WriteLine("Vehicle already exists in garage, status was changed to 'In Repair'"); } }
private static string auxGetExistingVehicleNumber(Ex03.GarageLogic.GarageManager i_GarageManager) { string validVehicleNumber; string existingVehicleNumber; System.Console.WriteLine("Please enter a valid existing vehicle number"); do { validVehicleNumber = auxGetValidVehicleNumber(); if (i_GarageManager.IsVehicleExistsInGarage(validVehicleNumber)) { existingVehicleNumber = validVehicleNumber; break; } else { System.Console.WriteLine("Vehicle number " + validVehicleNumber + " does not exist in garage, please enter new valid vehicle number"); } }while (true); return(existingVehicleNumber); }
private static void presentFullVehicleDetails(string i_ExistingVehicleNumber, Ex03.GarageLogic.GarageManager i_GarageManager) { Ex03.GarageLogic.VehicleInTreatmentDetails vehicleToPresentDetails = i_GarageManager.GetVehicleInTreatmentDetailsByExistingVehicleNumber(i_ExistingVehicleNumber); System.Console.WriteLine(vehicleToPresentDetails); }
public static void Main() { GarageManager.RunProgram(); }