예제 #1
0
        private void createNewCar()
        {
            m_Wheels = GarageMain.CreateWheels(m_WheelManufacturer, m_WheelMaxAirPressure, m_WheelCurrentAirPressure,
                                               4);
            Car newCar = null;

            if (m_VehicleType == eVehicleType.FuelBased)
            {
                FuelBasedEnergy fuelBasedEnergy =
                    GarageMain.CreateFuelBasedEnergy(m_FuelType, m_MaxFuelAmount, m_CurrentFuelAmount);

                newCar = GarageMain.CreateCar(fuelBasedEnergy, m_Wheels, m_LicenseNumber, m_ModelName,
                                              m_CarColor, m_CarNumberOfDoors);
            }

            if (m_VehicleType == eVehicleType.Electric)
            {
                ElectricEnergy electricEnergy =
                    GarageMain.CreateElectricEnergy(m_MaxBatteryTimeAmount, m_CurrentBatteryTimeAmount);

                newCar = GarageMain.CreateCar(electricEnergy, m_Wheels, m_LicenseNumber, m_ModelName,
                                              m_CarColor, m_CarNumberOfDoors);
            }

            Garage.AddNewVehicle(newCar, m_OwnerName, m_OwnerPhoneNumber);
            vehicleAddedSuccessfullyMessage();
        }
예제 #2
0
        private void createNewMotorcycle()
        {
            m_Wheels = GarageMain.CreateWheels(m_WheelManufacturer, m_WheelMaxAirPressure, m_WheelCurrentAirPressure,
                                               2);
            Motorcycle newMotorcycle = null;

            if (m_VehicleType == eVehicleType.FuelBased)
            {
                FuelBasedEnergy fuelBasedEnergy =
                    GarageMain.CreateFuelBasedEnergy(m_FuelType, m_MaxFuelAmount, m_CurrentFuelAmount);
                newMotorcycle = GarageMain.CreateMotorcycle(fuelBasedEnergy, m_Wheels, m_LicenseNumber,
                                                            m_ModelName, m_MotorcycleLicenseType, m_MotorcycleEngineVolume);
            }

            if (m_VehicleType == eVehicleType.Electric)
            {
                ElectricEnergy electricEnergy =
                    GarageMain.CreateElectricEnergy(m_MaxBatteryTimeAmount, m_CurrentBatteryTimeAmount);
                newMotorcycle = GarageMain.CreateMotorcycle(electricEnergy, m_Wheels, m_LicenseNumber, m_ModelName,
                                                            m_MotorcycleLicenseType, m_MotorcycleEngineVolume);
            }

            Garage.AddNewVehicle(newMotorcycle, m_OwnerName, m_OwnerPhoneNumber);
            vehicleAddedSuccessfullyMessage();
        }
예제 #3
0
        private void createNewTruck()
        {
            m_Wheels = GarageMain.CreateWheels(m_WheelManufacturer, m_WheelMaxAirPressure,
                                               m_WheelCurrentAirPressure, 12);
            FuelBasedEnergy fuelBasedEnergy =
                GarageMain.CreateFuelBasedEnergy(m_FuelType, m_MaxFuelAmount, m_CurrentFuelAmount);
            Truck newTruck = GarageMain.CreateTruck(fuelBasedEnergy, m_Wheels, m_LicenseNumber, m_ModelName,
                                                    m_IsContainsDangerousMaterials, m_TruckCargoVolume);

            Garage.AddNewVehicle(newTruck, m_OwnerName, m_OwnerPhoneNumber);
            vehicleAddedSuccessfullyMessage();
        }
예제 #4
0
        private void showEnterVehicleMenu()
        {
            string licensePlateSrting = getLicensePlaterNumberFromUser();

            if (m_Garage.DoesVehicleExist(licensePlateSrting))
            {
                m_Garage.ChangeVehicleStatus(licensePlateSrting, eStatus.InRepair);
                Console.Clear();
                Console.WriteLine("We already have this vehicle in our database. Status change to 'In Repair'");
            }
            else
            {
                const string k_Fuel   = "Fuel";
                const bool   v_IsFuel = true;

                string ownerName    = getOwnerName();
                string ownerPhone   = getOwnerPhone();
                string vehicleType  = getVehicleType();
                string vehicleModel = getVehicleModel();
                float  energyLeft;

                if (vehicleType.Contains(k_Fuel))
                {
                    energyLeft = getEnergyLeft(v_IsFuel);
                }
                else
                {
                    energyLeft = getEnergyLeft(!v_IsFuel);
                }

                string wheelManufacturer       = getWheelManufecturer();
                float  wheelCurrentAirPressure = getWheelCurrentAirPressure();

                int i = 0;

                List <KeyValuePair <string, Type> > requiredDataList =
                    VehicleInfo.GetRequiredDataOfSpecificVehicleType(vehicleType);
                string[] parameters = new string[requiredDataList.Count];
                foreach (KeyValuePair <string, Type> requiredData in requiredDataList)
                {
                    Console.Clear();
                    Console.WriteLine("Please enter {0}", requiredData.Key);

                    if (requiredData.Value.IsEnum)
                    {
                        Console.WriteLine("Enter one of the values below:");
                        string[] enumNames = Enum.GetNames(requiredData.Value);

                        foreach (string name in enumNames)
                        {
                            Console.WriteLine("{0}", name);
                        }

                        Console.WriteLine();
                    }
                    else if (requiredData.Value == typeof(bool))
                    {
                        Console.Write("Enter 'Y' or 'N': ");
                    }

                    string input = Console.ReadLine();

                    while (string.IsNullOrEmpty(input) || input.Trim().Length == 0)
                    {
                        Console.WriteLine("Please enter a non-empty string. Try again");
                        input = Console.ReadLine();
                    }

                    parameters[i] = input;
                    i++;
                }

                try
                {
                    m_Garage.AddNewVehicle(vehicleType, licensePlateSrting, vehicleModel, ownerName, ownerPhone, energyLeft, wheelManufacturer, wheelCurrentAirPressure, parameters);
                    Console.Clear();
                    Console.WriteLine("We have entered your vehicle into our system.");
                }
                catch (ArgumentException)
                {
                    Console.Clear();
                    Console.WriteLine("One or more of the given arguments you have entered are not valid. Try again");
                }
                catch (ValueOutOfRangeException)
                {
                    Console.Clear();
                    Console.WriteLine("One or more of the given argument you have entered are out of valid range. Try again");
                }
                catch (FormatException)
                {
                    Console.Clear();
                    Console.WriteLine("One or more of the given arguments you have entered are not valid format. Try again");
                }
            }
        }