Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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;
        }
Exemplo n.º 6
0
        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");
            }
        }
Exemplo n.º 7
0
        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;
            }
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
0
        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));
            }
        }
Exemplo n.º 10
0
        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);
            }
        }
Exemplo n.º 11
0
 public Truck(eFuel i_FuelType, float i_MaxFuelCapacity, eWheels i_NumOfWheels, float i_MaxAirPressure)
     : base(i_FuelType, i_MaxFuelCapacity, i_NumOfWheels, i_MaxAirPressure)
 {
 }
Exemplo n.º 12
0
 public FuelEngine(eFuel i_FuelType, float i_EnergyLeft, float i_Capacity) : base(i_EnergyLeft, i_Capacity)
 {
     this.fuelType = i_FuelType;
 }
Exemplo n.º 13
0
 public FuelEnergy(eFuel i_FuelType, float i_MaxAmountOfFuel) : base(i_MaxAmountOfFuel)
 {
     m_FuelType = i_FuelType;
 }
Exemplo n.º 14
0
 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;
 }
Exemplo n.º 15
0
 public FuelTank(eFuel i_FuelType, float i_FuelCapacity)
     : base(i_FuelCapacity)
 {
     r_FuelType = i_FuelType;
 }
Exemplo n.º 16
0
 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();
 }
Exemplo n.º 17
0
 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();
 }
Exemplo n.º 18
0
 public FuelTypeException(eFuel i_InputFuel, eFuel i_RequiredFuel)
     : base()
 {
     r_InputFuel    = i_InputFuel;
     r_RequiredFuel = i_RequiredFuel;
 }
Exemplo n.º 19
0
 public FuelTank(float i_MaxCampacity, float i_CurrentCampacity, eFuel i_FuelType)
     : base(i_MaxCampacity, i_CurrentCampacity)
 {
     m_FuelType = i_FuelType;
 }
Exemplo n.º 20
0
 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;
 }