예제 #1
0
        internal static VehicleGarageCard CreateFirstCard(
            string i_OwnerName,
            string i_OwnerPhone,
            string i_ModelName,
            string i_LicenseNumber,
            string i_WheelManufacturerName,
            eVehiclesType i_VehicleType)
        {
            Vehicle toReturn;

            switch (i_VehicleType)
            {
            case eVehiclesType.ElectricMotorcycle:
            case eVehiclesType.FuelBasedMotorcycle:
                toReturn = new MotorCycle(i_ModelName, i_LicenseNumber, i_WheelManufacturerName, i_VehicleType);
                break;

            case eVehiclesType.ElectricCar:
            case eVehiclesType.FuelBasedCar:
                toReturn = new RegularCar(i_ModelName, i_LicenseNumber, i_WheelManufacturerName, i_VehicleType);
                break;

            default:
                toReturn = new Truck(i_ModelName, i_LicenseNumber, i_WheelManufacturerName, i_VehicleType);
                break;
            }

            VehicleGarageCard cardToReturn = new VehicleGarageCard(i_OwnerName, i_OwnerPhone, toReturn);

            return(cardToReturn);
        }
        private void addNewVehicle()
        {
            Console.Clear();
            // print - "insert license number"
            string licenseNumber = Console.ReadLine();

            // print - "choose vehicle type"
            showManuOfVehicles();
            eVehiclesType vehicleType = (eVehiclesType)getChoiceFromUser();
            Owner         owner       = getOwnerFromUser();

            //create new car
            r_Garage.AddNewCar(licenseNumber, vehicleType, owner);
            List <string> parameters     = r_Garage.GetParameters(licenseNumber);
            List <string> inputsFromUser = new List <string>(parameters.Count);

            foreach (string question in parameters)
            {
                Console.Write(string.Format("{0} ", question));
                inputsFromUser.Add(Console.ReadLine());
            }

            r_Garage.SetVehicleData(licenseNumber, inputsFromUser);
            Console.WriteLine("Vehicle added successfuly");
        }
        public Vehicle CreateNewVehicle(string i_LicenseNumber, eVehiclesType i_VehicleType)
        {
            Vehicle vehicle;

            switch (i_VehicleType)
            {
            case eVehiclesType.GasCar:
            {
                vehicle = new Car(i_LicenseNumber, new GasEngine());
                break;
            }

            case eVehiclesType.ElectricCar:
            {
                vehicle = new Car(i_LicenseNumber, new ElectricEngine());
                break;
            }

            case eVehiclesType.GasMotorcycle:
            {
                vehicle = new Motorcycle(i_LicenseNumber, new GasEngine());
                break;
            }

            case eVehiclesType.ElectricMotorcycle:
            {
                vehicle = new Motorcycle(i_LicenseNumber, new ElectricEngine());
                break;
            }

            case eVehiclesType.Truck:
            {
                vehicle = new Truck(i_LicenseNumber, new GasEngine());
                break;
            }

            default:
            {
                vehicle = null;
                break;
            }
            }

            return(vehicle);
        }
        public void AddNewCar(string i_LicesnseNumber, eVehiclesType i_VehicleType, Owner i_Owner)
        {
            bool isExists = m_VehiclesInfo.ContainsKey(i_LicesnseNumber);

            if (string.IsNullOrEmpty(i_LicesnseNumber))
            {
                throw new CarWithoutLisenceNumberException(i_Owner);
            }
            else if (isExists)
            {
                Console.WriteLine("Vehicle license-number {0} already exist", i_LicesnseNumber);
                ChangeVeichleStatus(i_LicesnseNumber, eVehicleStatus.InRepair);
            }
            else
            {
                Vehicle             vehicle    = m_VehiclesCreator.CreateNewVehicle(i_LicesnseNumber, i_VehicleType);
                VehicleInfoInGarage newVehicle = new VehicleInfoInGarage(i_Owner, vehicle);
                m_VehiclesInfo.Add(i_LicesnseNumber, newVehicle);
            }
        }
        public static Vehicle CreateVehicle(string i_LicensePlate, string i_ModelName, string i_WheelManufacturer, EngineType.eEnergySource i_EnergySource, eVehiclesType i_VehiclesType, float i_CurrentAirPressure, float i_CurrentEnergyAmount)
        {
            Vehicle newVehicle = null;

            switch (i_VehiclesType)
            {
            case eVehiclesType.Car:
                newVehicle = new Car(i_ModelName, i_LicensePlate, i_EnergySource, i_WheelManufacturer, i_CurrentAirPressure, i_CurrentEnergyAmount);
                break;

            case eVehiclesType.Motorcycle:
                newVehicle = new Motorcycle(i_ModelName, i_LicensePlate, i_EnergySource, i_WheelManufacturer, i_CurrentAirPressure, i_CurrentEnergyAmount);
                break;

            case eVehiclesType.Truck:
                newVehicle = new Truck(i_ModelName, i_LicensePlate, i_WheelManufacturer, i_CurrentAirPressure, i_CurrentEnergyAmount);
                break;
            }

            return(newVehicle);
        }