/// <summary>
        /// Metoden skapar och parkerar fordon
        /// Simulerar också att garaget är fullt
        /// </summary>
        private void Simulering()
        {
            // Hämta vald garagehandler
            IGarageHandler garageHandler = this.GarageHandlers.FirstOrDefault(g => g.GuidId.Equals(this.SelectedGarageHandlerGuid));

            if (garageHandler != null)
            {
                var(strId, strName, bIsFull, iCapacity, iNumberOfParkedVehicle) = garageHandler.GetGarageInfo();
                Simulering((iCapacity - iNumberOfParkedVehicle) + 2);
            }
        }
        /// <summary>
        /// Metoden visar menyer där användaren kan välja vad hen  vill göra med ett garage
        /// </summary>
        /// <returns>enum MenuInputResult med olika värden beroende på användarens kommando</returns>
        public MenuInputResult Show()
        {
            MenuInputResult result = MenuInputResult.NA;

            do
            {
                this.Ui.Clear();

                if (result == MenuInputResult.WRONG_INPUT)
                {
                    this.Ui.WriteLine("Felaktig inmatning");
                }

                result = MenuInputResult.NA;

                // Hämta vald garagehandler
                IGarageHandler garageHandler = this.GarageHandlers.FirstOrDefault(g => g.GuidId.Equals(this.SelectedGarageHandlerGuid));

                if (garageHandler != null)
                {
                    var(strId, strName, bIsFull, iCapacity, iNumberOfParkedVehicle) = garageHandler.GetGarageInfo();

                    // Skapa en lämplig utskrift för menyn
                    string strIsFull = bIsFull ? "Nej" : "Ja";
                    this.Ui.WriteLine($"{strName}. Har lediga platser {strIsFull}. Antal bilar i garaget {iNumberOfParkedVehicle}");
                }

                // Visa menyn
                this.Ui.WriteLine(this.MenuFactory.GetMenu(MenuType.GARAGE_MENU));

                // Hantera inmatning från användaren
                result = HandleInput();
            }while (result != MenuInputResult.TO_MAIN_MENU);

            return(result);
        }
        /// <summary>
        /// Metoden skapar och parkerar önskat antal fordon
        /// </summary>
        /// <param name="iNumberOfVehicle">Antal fordon som skall skapas</param>
        private void Simulering(int iNumberOfVehicle)
        {
            // Hämta vald garagehandler
            IGarageHandler garageHandler = this.GarageHandlers.FirstOrDefault(g => g.GuidId.Equals(this.SelectedGarageHandlerGuid));

            if (garageHandler != null)
            {
                Ui.WriteLine("Simulerar att fordon parkeras i garaget");
                // Börja skapa lite fordon som parkeras i garaget
                IVehicleFactory      vehicleFactory = new VehicleFactory(this.RegistrationNumberRegister);
                ICanBeParkedInGarage vehicle        = null;
                IVehicle             tmpVehicle     = null;

                for (int i = 0; i < iNumberOfVehicle; i++)
                {
                    vehicle = vehicleFactory.CreateRandomVehicleForGarage();
                    if (garageHandler.ParkVehicle(vehicle))
                    {// Det gick parkera fordonet. Registrerar att registreringsnumret är upptaget
                        tmpVehicle = vehicle as IVehicle;
                        if (tmpVehicle != null)
                        {
                            this.RegistrationNumberRegister.AddRegistrationNumber(tmpVehicle.RegistrationNumber);
                        }
                    }
                }

                this.RegistrationNumberRegister.PrintRegister(this.Ui);
                garageHandler.PrintInformationAboutGarage();
                Ui.WriteLine("Return för att fortsätta");
                Ui.ReadLine();



                // Nu vill jag simulera att fordon lämnar garaget
                // Hämta info om garaget
                var(strId, strName, bIsFull, iCapacity, iNumberOfParkedVehicle) = garageHandler.GetGarageInfo();

                if (iNumberOfParkedVehicle > 1)
                {// Vi har minst ett parkerat fordon. Radera det första i arrayen
                    try
                    {
                        vehicle = garageHandler.Garage[0];
                        if (vehicle != null)
                        {
                            Ui.WriteLine("Simulerar att ett fordon lämnar garaget");

                            tmpVehicle = vehicle as IVehicle;
                            string strRegistrationNumber = String.Empty;
                            if (tmpVehicle != null)
                            {
                                strRegistrationNumber = tmpVehicle.RegistrationNumber;
                            }

                            if (garageHandler.RemoveVehicle(0))
                            {
                                this.RegistrationNumberRegister.RemoveRegistrationNumber(strRegistrationNumber);
                            }


                            this.RegistrationNumberRegister.PrintRegister(this.Ui);
                            garageHandler.PrintInformationAboutGarage();

                            Ui.WriteLine("Return för att fortsätta");
                            Ui.ReadLine();
                        }
                    }
                    catch (ArgumentOutOfRangeException)
                    { }
                }
            }
        }