示例#1
0
    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;
    }
示例#2
0
    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);
    }
示例#3
0
    /// <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);
        }
    }
示例#4
0
 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);
 }
示例#5
0
    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;
        }
    }
示例#6
0
    /// <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);
        }
    }
示例#7
0
    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'");
        }
    }
示例#8
0
    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);
    }
示例#9
0
 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);
 }
示例#10
0
 public static void Main()
 {
     GarageManager.RunProgram();
 }