public void ChangeVehicleStatus(string i_LicenseNumber, VehicleCard.eVehicleStatus i_NewsStatus)
        {
            VehicleCard cardToChange = null;

            cardToChange = m_Cards.Find(vehicleToChange => vehicleToChange.Vehicle.LicenseNumber.Equals(i_LicenseNumber));
            if (cardToChange == null)
            {
                throw new KeyNotFoundException();           ///// license number? empty ctor?
            }
            cardToChange.Status = i_NewsStatus;
        }
        public List <string> GetLicenseNumbersByStatus(VehicleCard.eVehicleStatus i_Status)
        {
            List <string> o_licenstNumbers = new List <string>();

            foreach (VehicleCard card in m_Cards)
            {
                if (card.Status.Equals(i_Status))
                {
                    o_licenstNumbers.Add(card.Vehicle.LicenseNumber);
                }
            }

            return(o_licenstNumbers);
        }
        public static void ChangeVehicleStatus(Garage i_Garage)
        {
            string o_LicenseNumber = null;

            VehicleCard.eVehicleStatus o_NewStatus = 0;

            GetVehicleLicenseNumberFromUser(out o_LicenseNumber);
            GetVehicleStatusFromUser(out o_NewStatus);

            try
            {                                                                           //////// while????
                i_Garage.ChangeVehicleStatus(o_LicenseNumber, o_NewStatus);
            }
            catch (KeyNotFoundException)
            {
                Console.WriteLine("License number does not exist on garage");
            }
        }
        public static void GetVehicleStatusFromUser(out VehicleCard.eVehicleStatus o_VehicleStatus)
        {
            int           userChoice = 0;
            bool          validInput = false;
            StringBuilder userPrompt = new StringBuilder();

            userPrompt.Append(" ---------------------------------------------" + Environment.NewLine);
            userPrompt.Append(" Please choose vehicle status:" + Environment.NewLine);
            userPrompt.Append("  1) In service" + Environment.NewLine);
            userPrompt.Append("  2) Fixed" + Environment.NewLine);
            userPrompt.Append("  3) Paid" + Environment.NewLine);
            userPrompt.Append(" ---------------------------------------------" + Environment.NewLine);

            Console.Write(userPrompt + Environment.NewLine);

            while (validInput == false)
            {
                try
                {
                    validInput = GetValidIntFromUserInRange(out userChoice, 1, 3);
                }
                catch (FormatException)
                {
                    Console.WriteLine("Error: Please enter a number.");
                }
                catch (ValueOutOfRangeException ex)
                {
                    Console.WriteLine("Error: The choice should be between " + ex.MinValue + " to " + ex.MaxValue);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Unknown error occured: " + Environment.NewLine + ex.Message + Environment.NewLine);
                }
            }

            userChoice     -= 1;
            o_VehicleStatus = (VehicleCard.eVehicleStatus)userChoice;
        }