/// <summary>
        /// Koppelen van Tafels met ID
        /// </summary>
        /// <param name="aantalMensen">Hoeveelheid mensen die bij de reservering aanwezig zullen zijn</param>
        /// <param name="gereserveerdeTafels">Lijst met de tafels die al zijn gekoppeld aan de reservering</param>
        /// <param name="tijdEnDatum">De tijd en datum waarop de reservering plaatsvindt (string format)</param>
        /// <returns>Returns de vernieuwde lijst voor de reservering (als deze is aangepast)</returns>
        public List <Tafel> KoppelenDoorMedewerker(int aantalMensen, List <Tafel> gereserveerdeTafels, string tijdEnDatum) //Koppelen door medewerker heeft als input een int aantal mensen, en list van tafels die al gekoppeld zijn aan de reservering.
        {
            int    checkTijd  = TijdEnDatumNaarInt(tijdEnDatum);                                                           //De gegeven tijd in int (1200)
            string checkDatum = TijdEnDatumNaarDatum(tijdEnDatum);                                                         //De gegeven datum in string (Zaterdag 1 januari 2021)

            while (true)
            {
                Console.Clear();
                Console.WriteLine(ASCIIART.TafelsKoppelenArt());
                if (BerekenTafelsDieNogGekoppeldMoetenWorden(aantalMensen, gereserveerdeTafels) <= 0) //0 megenomen omdat dat aangeeft dat er precies genoeg tafels zijn gekoppeld.
                {
                    Console.WriteLine("Er zijn genoeg tafels gekoppeld aan deze reservering. Klik op een toets om terug te gaan");
                    SaveTafels(this);
                    Console.ReadKey();
                    return(gereserveerdeTafels);
                }
                Console.WriteLine("Voer het ID van een tafel in om hem toe te voegen aan de reservering (bijv: 1A)\n\n0: Terug");
                string userInput = Console.ReadLine();
                if (userInput == "0")
                {
                    SaveTafels(this);
                    return(gereserveerdeTafels);
                }
                bool succesvolGekoppeld = false;
                foreach (Tafel tafel in Tafels)
                {
                    bool alGereserveerd = false;
                    if (tafel.Gereserveerd == null)
                    {
                        tafel.Gereserveerd = new List <string>();
                    }
                    if (userInput == tafel.ID)
                    {
                        foreach (string data in tafel.Gereserveerd)
                        {
                            if (TijdEnDatumNaarDatum(data) == checkDatum)                //Als het op dezelfde dag plaats vind
                            {
                                if (TijdCheck(checkTijd, TijdEnDatumNaarInt(data), 200)) //checkt of de tafel al gereserveerd is ergens binnen 200 (2 uur) van tevoren of 2 uur daarna, zo ja, Is al gereserveerd.
                                {
                                    alGereserveerd = true;
                                }
                            }
                        }
                        if (!alGereserveerd)
                        {
                            if (gereserveerdeTafels == null)
                            {
                                gereserveerdeTafels = new List <Tafel>();
                            }
                            Console.Clear();
                            Console.WriteLine(ASCIIART.TafelsArt());
                            gereserveerdeTafels.Add(tafel);
                            tafel.Gereserveerd.Add($"{TijdEnDatumNaarInt(tijdEnDatum)}{TijdEnDatumNaarDatum(tijdEnDatum)}"); //1200Zaterdag 1 januari 2021
                            succesvolGekoppeld = true;
                            Console.WriteLine($"{tafel.ID} toegevoegd aan de reservering!\n\nKlik op een toets en klik enter om verder te gaan");
                            Console.ReadLine();
                            break;
                        }
                    }
                }
                if (!succesvolGekoppeld)
                {
                    Console.Clear();
                    Console.WriteLine(ASCIIART.TafelsArt());
                    Console.WriteLine($"{userInput} is al gekoppeld voor deze tijd of bestaat niet als tafel in het systeem! Klik op een toets om door te gaan");
                    Console.ReadLine();
                }
            }
        }
        /// <summary>
        /// Koppelt automatisch tafels aan een reservering
        /// </summary>
        /// <param name="aantalMensen">Hoeveelheid mensen die bij de reservering aanwezig zullen zijn</param>
        /// <param name="gereserveerdeTafels">Lijst met de tafels die al zijn gekoppeld aan de reservering</param>
        /// <param name="tijdEnDatum">De tijd en datum waarop de reservering plaatsvindt (string format)</param>
        /// <param name="tochKoppelen">Boolean die op true wordt gezet wanneer er toch een inefficiente tafel gekoppeld moet worden (tafel van 4 voor mensen met minder dan 3)</param>
        /// <returns>Returns de vernieuwde lijst voor de reservering (als deze is aangepast)</returns>
        public List <Tafel> AutomatischKoppelen(int aantalMensen, List <Tafel> gereserveerdeTafels, string tijdEnDatum, bool tochKoppelen = false)
        {
            while (true)
            {
                Console.Clear();
                Console.WriteLine(ASCIIART.TafelsKoppelenArt());
                if (BerekenTafelsDieNogGekoppeldMoetenWorden(aantalMensen, gereserveerdeTafels) <= 0) //0 megenomen omdat dat aangeeft dat er precies genoeg tafels zijn gekoppeld.
                {
                    Console.WriteLine("Er zijn al genoeg tafels gekoppeld aan deze reservering. Klik op een toets om terug te gaan");
                    ConsoleKeyInfo input = Console.ReadKey();
                    return(gereserveerdeTafels);
                }

                bool wrongInput = false;
                Console.WriteLine($"Er worden automatisch tafels toegevoegd die passen bij {aantalMensen} personen, weet u dit zeker?\n");
                Console.WriteLine($"1: Ja\n");
                Console.WriteLine($"0: Nee\n");
                if (wrongInput)
                {
                    Console.WriteLine("Wrong Input! Probeer 1 of 0");
                }
                char userInput = Console.ReadKey().KeyChar;
                switch (userInput)
                {
                case '1':
                    Console.Clear();
                    Console.WriteLine(ASCIIART.TafelsKoppelenArt());
                    int    plekkenDieNogMoetenWordenGekoppeld = BerekenTafelsDieNogGekoppeldMoetenWorden(aantalMensen, gereserveerdeTafels);
                    int    checkTijd  = TijdEnDatumNaarInt(tijdEnDatum);   //De gegeven tijd in int (1200)
                    string checkDatum = TijdEnDatumNaarDatum(tijdEnDatum); //De gegeven datum in string (Zaterdag 1 januari 2021)
                    if (gereserveerdeTafels == null)
                    {
                        gereserveerdeTafels = new List <Tafel>();
                    }
                    foreach (Tafel tafel in Tafels)
                    {
                        if (plekkenDieNogMoetenWordenGekoppeld > 0)
                        {
                            if (tafel.Gereserveerd == null)
                            {
                                tafel.Gereserveerd = new List <string>();
                            }

                            bool alGereserveerd = false;
                            bool geenGoedeTafel = false;
                            foreach (string data in tafel.Gereserveerd)
                            {
                                if (isEenTafelAlGereserveerd(data, checkDatum, checkTijd))
                                {
                                    alGereserveerd = true;
                                    break;
                                }
                            }
                            if (plekkenDieNogMoetenWordenGekoppeld <= 2 && tafel.Plekken != 2 && !alGereserveerd)     //Als er nog maar 2 of minder mensen zijn die een tafel nodig heeft van een reservering, kijkt het systeem om de tafel 2 personen heeft om ruimte te besparen
                            {
                                geenGoedeTafel = true;
                            }

                            else if (!alGereserveerd && !geenGoedeTafel)
                            {
                                Console.WriteLine($"Tafel {tafel.ID} toegevoegd aan reservering, {tafel.Plekken} plekken");
                                plekkenDieNogMoetenWordenGekoppeld -= tafel.Plekken;
                                gereserveerdeTafels.Add(tafel);
                                tafel.Gereserveerd.Add($"{TijdEnDatumNaarInt(tijdEnDatum)}{TijdEnDatumNaarDatum(tijdEnDatum)}");     //1200Zaterdag 1 januari 2021
                            }
                        }
                    }
                    if (plekkenDieNogMoetenWordenGekoppeld > 0 && tochKoppelen == false)
                    {     //Als er geen tafels van 2 zijn voor de laatste 2 of 1 persoon van een reservering dan laat het systeem dat weten.
                        Console.WriteLine($"{plekkenDieNogMoetenWordenGekoppeld} Plekken zijn niet succesvol gekoppeld omdat er geen tafels van 2 personen meer vrij zijn, wilt u dat het systeem checkt of er nog tafels van 4 personen zijn en deze koppelen?\n\n1: Ja\n0: Nee");
                        char inputUser = Console.ReadKey().KeyChar;
                        switch (inputUser)
                        {
                        case '1':
                            AutomatischKoppelen(aantalMensen, gereserveerdeTafels, tijdEnDatum, true);
                            return(gereserveerdeTafels);

                        case '0':
                            SaveTafels(this);
                            return(gereserveerdeTafels);
                        }
                    }
                    SaveTafels(this);
                    Console.WriteLine("Toets op een knop om verder te gaan");
                    Console.ReadLine();
                    return(gereserveerdeTafels);

                case '0':
                    return(gereserveerdeTafels);

                default:
                    wrongInput = true;
                    break;
                }
            }
        }