internal Truck(
     string i_ModelName,
     string i_ModelNumber,
     string i_WheelManufacturerName,
     Registration.eVehiclesType i_Type)
     : base(i_ModelName, i_ModelNumber, i_WheelManufacturerName, i_Type)
 {
     m_Engine = new FuelEngine(Registration.sr_AmountOfResources[i_Type], Registration.sr_ResourceType[i_Type]);
     m_EnergyLeftPercentage = m_AmountOfEnergyLeft / Registration.sr_AmountOfResources[i_Type];
     r_SpecialAttribute     = new List <KeyValuePair <string, Type> >(k_AmountOfSpecialAttribute);
     r_SpecialAttribute.Add(new KeyValuePair <string, Type>("Dangerous cargo", m_Dangerous.GetType()));
     r_SpecialAttribute.Add(new KeyValuePair <string, Type>("Dangerous cargo", m_CargoVolume.GetType()));
 }
        protected Vehicle(string i_ModelName, string i_LicenseNumber, string i_WheelManufacturerName, Registration.eVehiclesType i_Type)
        {
            m_ModelName          = i_ModelName;
            m_LicenseNumber      = i_LicenseNumber;
            m_AmountOfEnergyLeft = 0;
            int amountOfWheel = (int)Registration.sr_NumberOfWheels[i_Type];

            m_ListOfWheels = new List <Wheel>(amountOfWheel);
            for (int i = 0; i < amountOfWheel; i++)
            {
                m_ListOfWheels.Add(new Wheel(i_WheelManufacturerName, 0, Registration.sr_MaximalAirPressure[i_Type]));
            }

            m_Type = i_Type;
        }
        public void InsertANewVehicleCardIntoTheGarage(
            string i_OwnerName,
            string i_OwnerCellPhone,
            string i_ModelName,
            string i_LicenseNumber,
            string i_WheelManufacturerName,
            Registration.eVehiclesType i_Type)
        {
            if (this.IsLicenseNumberExist(i_LicenseNumber))
            {
                throw new ArgumentException("Sorry.. you must have a mistake, the license number already exists in our system.");
            }

            VehicleGarageCard cardVehicle = Registration.CreateFirstCard(i_OwnerName, i_OwnerCellPhone, i_ModelName, i_LicenseNumber, i_WheelManufacturerName, i_Type);

            m_Vehicles.Add(i_LicenseNumber, cardVehicle);

            m_CurrentVehicleCardToInsert = cardVehicle;
        }
        internal MotorCycle(
            string i_ModelName,
            string i_ModelNumber,
            string i_WheelManufacturerName,
            Registration.eVehiclesType i_Type)
            : base(i_ModelName, i_ModelNumber, i_WheelManufacturerName, i_Type)
        {
            if (i_Type == Registration.eVehiclesType.ElectricMotorcycle)
            {
                m_Engine = new ElectricEngine(Registration.sr_AmountOfResources[i_Type]);
            }
            else
            {
                m_Engine = new FuelEngine(Registration.sr_AmountOfResources[i_Type], Registration.sr_ResourceType[i_Type]);
            }

            m_EnergyLeftPercentage = m_AmountOfEnergyLeft / Registration.sr_AmountOfResources[i_Type];
            r_SpecialAttribute     = new List <KeyValuePair <string, Type> >(k_AmountOfSpecialAttribute)
            {
                new KeyValuePair <string, Type>("License type", m_MotorCycleLicenseType.GetType()),
                new KeyValuePair <string, Type>("Engine volume", m_EngineVolume.GetType())
            };
        }
        internal RegularCar(string i_ModelName, string i_ModelNumber, string i_WheelManufacturerName, Registration.eVehiclesType i_Type)
            : base(i_ModelName, i_ModelNumber, i_WheelManufacturerName, i_Type)
        {
            if (i_Type == Registration.eVehiclesType.ElectricCar)
            {
                m_Engine = new ElectricEngine(Registration.sr_AmountOfResources[i_Type]);
            }
            else
            {
                m_Engine = new FuelEngine(Registration.sr_AmountOfResources[i_Type], Registration.sr_ResourceType[i_Type]);
            }

            m_EnergyLeftPercentage = m_AmountOfEnergyLeft / Registration.sr_AmountOfResources[i_Type];
            r_SpecialAttribute     = new List <KeyValuePair <string, Type> >(k_AmountOfSpecialAttribute)
            {
                new KeyValuePair <string, Type>("Color", m_ColorTypeForRegularCar.GetType()),
                new KeyValuePair <string, Type>("Amount of doors", m_AmountOfDoors.GetType())
            };
        }