コード例 #1
0
ファイル: Car.cs プロジェクト: nissimuseri/Garage
        public Car(Engine.eEnergyType i_EnergyType, string i_ModelName, string i_LiecenseNumber, string i_WheelVendorName, float i_CurrentEnergyInPercent, float i_CurrentAirPressure) : base(i_ModelName, i_LiecenseNumber, i_WheelVendorName, i_CurrentAirPressure, 4)
        {
            if (Wheels[0].CurrentAirPressure > 31f)
            {
                throw new ValueOutOfRangeException(31f, 0);
            }

            Wheels.Capacity = 4;
            foreach (Wheel wheel in Wheels)
            {
                wheel.MaxAirPressure = 31f;
            }

            if (i_EnergyType == Engine.eEnergyType.Electricity)
            {
                VehicleEngine             = new ElectricEngine();
                VehicleEngine.MaxCapacity = 1.8f;
            }
            else if (i_EnergyType == Engine.eEnergyType.Fuel)
            {
                VehicleEngine = new FuelEngine();
                ((FuelEngine)VehicleEngine).FuelType = FuelEngine.eFuelTypes.Octan96;
                VehicleEngine.MaxCapacity            = 55f;
            }

            VehicleEngine.CurrentCapacity = i_CurrentEnergyInPercent * VehicleEngine.MaxCapacity / 100;
            EnergyToEmptyInPrecent        = i_CurrentEnergyInPercent;
        }
コード例 #2
0
 public void FuelVehicle(string i_LicenseNumber, Engine.eEnergyType io_FuelType, float io_AddAmount)
 {
     try
     {
         m_Clients[i_LicenseNumber].Vehicle.AddEnergy(io_FuelType, io_AddAmount);
     }
     catch (Exception exception)
     {
         throw exception;
     }
 }
コード例 #3
0
 internal void AddFuel(Engine.eEnergyType io_EnergyType, float i_AmountToAdd)
 {
     try
     {
         AddEnergy(io_EnergyType, i_AmountToAdd);
     }
     catch (Exception exception)
     {
         throw exception;
     }
 }
コード例 #4
0
 internal void AddEnergy(Engine.eEnergyType i_EnergyType, float i_AmountToAdd)
 {
     try
     {
         m_Engine.AddEnergy(i_EnergyType, i_AmountToAdd);
     }
     catch (FormatException exception)
     {
         throw exception;
     }
 }
コード例 #5
0
ファイル: Truck.cs プロジェクト: nissimuseri/Garage
        public Truck(Engine.eEnergyType i_EnergyType, string i_ModelName, string i_LiecenseNumber, string i_WheelVendorName, float i_CurrentEnergyInPercent, float i_CurrentAirPressure) : base(i_ModelName, i_LiecenseNumber, i_WheelVendorName, i_CurrentAirPressure, 12)
        {
            if (Wheels[0].CurrentAirPressure > 26f)
            {
                throw new ValueOutOfRangeException(26f, 0);
            }

            Wheels.Capacity = 12;
            foreach (Wheel wheel in Wheels)
            {
                wheel.MaxAirPressure = 26f;
            }

            VehicleEngine = new FuelEngine();
            ((FuelEngine)VehicleEngine).FuelType = FuelEngine.eFuelTypes.Soler;
            VehicleEngine.MaxCapacity            = 110;
            VehicleEngine.CurrentCapacity        = i_CurrentEnergyInPercent * VehicleEngine.MaxCapacity;
            EnergyToEmptyInPrecent = i_CurrentEnergyInPercent;
        }
コード例 #6
0
        public static Vehicle VehicleCreator(string i_ModelName, string i_LiecenseNumber, int i_VehicleType, Engine.eEnergyType i_EnergyType, string i_WheelsVendorName, float i_CurrentEnergyInPercent, float i_CurrentAirPressure)
        {
            Vehicle newVehicle;

            switch (i_VehicleType)
            {
            case 1:
                newVehicle = new Car(i_EnergyType, i_ModelName, i_LiecenseNumber, i_WheelsVendorName, i_CurrentEnergyInPercent, i_CurrentAirPressure);
                break;

            case 2:
                newVehicle = new Motorcycle(i_EnergyType, i_ModelName, i_LiecenseNumber, i_WheelsVendorName, i_CurrentEnergyInPercent, i_CurrentAirPressure);
                break;

            case 3:
                newVehicle = new Truck(i_EnergyType, i_ModelName, i_LiecenseNumber, i_WheelsVendorName, i_CurrentEnergyInPercent, i_CurrentAirPressure);
                break;

            default: throw new ArgumentException();
            }

            return(newVehicle);
        }
コード例 #7
0
        private static void addNewCarToFix()
        {
            bool    licenceExist;
            string  modelName;
            string  licenceNumber;
            float   currentEnergyInPercent = -1;
            string  wheelsVendorName;
            float   currentAirPressure;
            Vehicle newVehicle;

            Engine.eEnergyType       energyType = Engine.eEnergyType.Fuel;
            Car.eColorOfCar          colorOfCar;
            Car.eNumOfDoors          numOfDoors;
            Motorcycle.eLicenceTypes licenceType;
            int    engineCapacity;
            bool   isDriveingDangerousThings;
            float  volumeOfCargo;
            string ownerName;
            string ownerPhoneNumber;
            int    vehicleType = 0;
            int    userChoice  = 0;

            Console.WriteLine(
                @"Please choose vehicle type:
1. Car
2. Motorcycle
3. Truck");
            vehicleType = inputBetweenRange(1, 3);

            if (userChoice == 1 || userChoice == 2)
            {
                Console.WriteLine(@"Please enter vehicle energy type:
1. Fuel
2. Electricity");
                userChoice = inputBetweenRange(1, 2);
                switch (userChoice)
                {
                case 1:
                    energyType = Engine.eEnergyType.Fuel;
                    break;

                case 2:
                    energyType = Engine.eEnergyType.Electricity;
                    break;
                }
            }

            Console.Clear();
            Console.Write("Please enter vehicle model name: ");
            modelName = checkEmptyInput();
            Console.Write("Please enter vehicle licence number with 7/8 digits: ");
            licenceNumber = checkLicenceNumber();
            licenceExist  = m_Garage.isLicenceExist(licenceNumber);
            if (licenceExist == true)
            {
                Console.WriteLine("This licence number is already exists in the garage, his status became InFix.");
            }
            else
            {
                Console.Write("Please enter current energy in percent: ");
                currentEnergyInPercent = checkFloatParsing();
                while (currentEnergyInPercent < 0 || currentEnergyInPercent > 100)
                {
                    Console.WriteLine("Invalid input, the input must be between 0 to 100");
                    currentEnergyInPercent = checkFloatParsing();
                }

                Console.Write("Please enter wheels vendor name: ");
                wheelsVendorName = checkEmptyInput();
                Console.Write("Please enter current air pressure in the wheels: ");
                currentAirPressure = checkFloatParsing();
                try
                {
                    newVehicle = VehicleGenerator.VehicleCreator(modelName, licenceNumber, vehicleType, energyType, wheelsVendorName, currentEnergyInPercent, currentAirPressure);
                    Console.Clear();
                    if (newVehicle is Car)
                    {
                        inputCarDetails(out colorOfCar, out numOfDoors);
                        newVehicle.ChangeSpecificDetails(colorOfCar, numOfDoors);
                    }
                    else if (newVehicle is Motorcycle)
                    {
                        inputMotorcycleDetails(out licenceType, out engineCapacity);
                        newVehicle.ChangeSpecificDetails(licenceType, engineCapacity);
                    }
                    else if (newVehicle is Truck)
                    {
                        inputTruckDetails(out isDriveingDangerousThings, out volumeOfCargo);
                        newVehicle.ChangeSpecificDetails(isDriveingDangerousThings, volumeOfCargo);
                    }

                    Console.Clear();
                    Console.Write("Please enter your first name: ");
                    ownerName = Console.ReadLine();
                    while (checkOwnerNameInput(ownerName) != true)
                    {
                        Console.WriteLine("Wrong input, Please enter only letters.");
                        ownerName = Console.ReadLine();
                    }

                    Console.WriteLine("Please enter your phone number in format of 10 digits:");
                    ownerPhoneNumber = Console.ReadLine();
                    while (checkOwnerPhoneNumberInput(ownerPhoneNumber) != true)
                    {
                        Console.WriteLine("Wrong input, Please enter only numbers with 10 digits.");
                        ownerPhoneNumber = Console.ReadLine();
                    }

                    m_Garage.AddNewCarToFix(newVehicle, ownerName, ownerPhoneNumber);
                }
                catch (ValueOutOfRangeException i_ValueOutOfRangeException)
                {
                    Console.WriteLine(i_ValueOutOfRangeException.Message);
                }
            }
        }