public void ChangeVehicleStatusInGarage(GarageVehicleProfile.eStateOfVehicle i_StatusToChange)
        {
            Console.WriteLine("Please enter the Vehicle License that you need to change State for: ");
            string i_strLicense = Console.ReadLine();

            m_Grage.ChangeStateOfVehicleInGarage(i_strLicense, i_StatusToChange);
        }
 public void ChangeStateOfVehicleInGarage(string i_License, GarageVehicleProfile.eStateOfVehicle i_NewVehicleState)
 {
     try
     {
         if (VehiclesInGarage.ContainsKey(i_License))
         {
             VehiclesInGarage[i_License].VehicleStatus = i_NewVehicleState;
             string msg = string.Format("The vehicle with license No: {0} status successfully changed for {1}!", i_License, i_NewVehicleState);
             Console.WriteLine(msg);
         }
     }
     catch (KeyNotFoundException ex)
     {
         string msg = string.Format(
             @"The requested license {0} for the status change has not found in the garage system",
             i_License.ToString());
     }
 }
        public void ShowAllVehiclesLicenseAndStateInGarage(GarageVehicleProfile.eStateOfVehicle i_VehicleGarageState)
        {
            int m_Count = 0;

            foreach (KeyValuePair <string, GarageVehicleProfile> vehicles in VehiclesInGarage)
            {
                if (vehicles.Value.VehicleStatus == i_VehicleGarageState)
                {
                    string msg = string.Format(
                        @"The LicenseNumber is: {0} for the status: {1} ",
                        vehicles.Key,
                        i_VehicleGarageState.ToString());
                    Console.WriteLine(msg);
                    m_Count++;
                }
            }
            if (m_Count == 0)
            {
                throw new Exception("Their is not Vehicle in Garage with the status of : " + i_VehicleGarageState.ToString());
            }
        }
        public void ActionInGarage()
        {
            Console.WriteLine(
                @"
Please insert your choice by number for action in the garage: 
=============================================================
1 - Add a vehicle to garage
2 - Show all license number in garage by choosen status
3 - Change status of choosen vehicle in garage
4 - Blow air pressure in vehicle wheeels for maximum psi
5 - To Fuel a fuel engine vehicle
6 - To charge a electricity engine vehicle 
7 - Show a full details of vehicle by license 
8 - return to Main Menu


");
            string UserActionInGarage = Console.ReadLine();

            while (m_IsAddVehicle == true && UserActionInGarage != "1")
            {
                Console.WriteLine("**Alert!! You Need to enter your vehicle to garage first, choose - 1!**");
                ActionInGarage();
            }
            m_IsAddVehicle = false;

            switch (UserActionInGarage)
            {
            case "1":                     //Add new Vehicle to garage action
                AddVehicleToGarage();
                Console.WriteLine("You successfully Add your vehicle to the garage!");
                ActionInGarage();
                break;

            case "2":                     //Show all vehicles in garage by license and status
                Console.WriteLine("Enter requested status for filtring: ");
                string i_strState = Console.ReadLine();
                m_UserStateChoose = UserEnumParseofValue <GarageVehicleProfile.eStateOfVehicle>(i_strState);
                m_Grage.ShowAllVehiclesLicenseAndStateInGarage(m_UserStateChoose);
                Console.WriteLine("This is all the vehicles by status: {0} in the garage.", i_strState);
                ActionInGarage();
                break;

            case "3":                     //change Vehicle status in garage
                Console.WriteLine("Please enter the status of vehicle for change: ");
                string i_strStateChange = Console.ReadLine();
                m_UserStateChoose = UserEnumParseofValue <GarageVehicleProfile.eStateOfVehicle>(i_strStateChange);
                ChangeVehicleStatusInGarage(m_UserStateChoose);
                ActionInGarage();
                break;

            case "4":                     //Blow air pressure to max in vehicle by license
                Console.WriteLine("Please enter license for wheels max blow : ");
                string i_strLicense = Console.ReadLine();
                m_Grage.BlowMaxPressureByLicense(i_strLicense);
                Console.WriteLine("The vehicle wheels with license No. {0} blow for max psi!", i_strLicense);
                ActionInGarage();
                break;

            case "5":                     //Add fuel to vehicle in garage
                Console.WriteLine("Enter amount of fuel to add in liters");
                string i_strFuel   = Console.ReadLine();
                float  i_FuelToAdd = float.Parse(i_strFuel);
                AddFuelToVehicleInGarage(i_FuelToAdd);
                ActionInGarage();
                break;

            case "6":                     //charge elcetricity to Vehicle in garage
                Console.WriteLine("Enter amount of electricity to add in minutes");
                string i_strElectric      = Console.ReadLine();
                float  i_ElectricityToAdd = float.Parse(i_strElectric);
                AddElectricityToVehicleInGarage(i_ElectricityToAdd);
                ActionInGarage();
                break;

            case "7":                      //Show a full details of vehicle by license
                ShowFullDetailsOfVehicleByLicense();
                break;

            case "8":                      //Exit
                AppMenu();
                break;

            default:

                Console.WriteLine("You Choose invalid option! please try Again!");
                break;
            }
        }