public void AddTafels(TafelArray tafels) { bool wrongInput = false; while (true) { Console.Clear(); Console.WriteLine(ASCIIART.TafelsArt()); Console.WriteLine("Koppel Tafels aan de reservering\n"); Console.WriteLine("1: Bekijk alle vrije tafels\n"); Console.WriteLine("2: Koppel tafels via ID\n"); Console.WriteLine("3: Automatisch koppelen\n"); Console.WriteLine("0: Terug\n"); if (wrongInput) { Console.WriteLine("Wrong input! Probeer 1, 2, 3 of 0"); } char userInput = Console.ReadKey().KeyChar; switch (userInput) { case '1': tafels.BekijkVrijeTafels($"{this.Tijd}{this.Datum}"); break; case '2': this.Tafels = tafels.KoppelenDoorMedewerker(this.Personen, this.Tafels, $"{this.Tijd}{this.Datum}"); //Personen -> aantal personen, Tafels -> gereserveerde tafels die al gekoppeld zijn. break; case '3': this.Tafels = tafels.AutomatischKoppelen(this.Personen, this.Tafels, $"{this.Tijd}{this.Datum}"); //Personen -> aantal personen, Tafels -> gereserveerde tafels die al gekoppeld zijn. break; case '0': return; default: wrongInput = true; break; } return; } }
/// <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(); } } }
} //Empty constructor for json deserializen /// <summary> /// Laat alle vrije tafels van een bepaalde datum + tijd zien verdeeld onder maximaal 3 kolommen. /// </summary> /// <param name="tijdEnDatum">De tijd en datum die wordt gechecked in string format</param> public void BekijkVrijeTafels(string tijdEnDatum) { int checkTijd = TijdEnDatumNaarInt(tijdEnDatum); //De gegeven tijd in int (1200) string checkDatum = TijdEnDatumNaarDatum(tijdEnDatum); //De gegeven datum in string (Zaterdag 1 januari 2021) bool wrongInput = false; while (true) { Console.Clear(); Console.WriteLine(ASCIIART.TafelsArt()); Console.WriteLine($"Vrije Tafels in The Fat Duck voor {checkDatum} om {checkTijd} uur. (+-2 uur extra voor lopende reserveringen)\n"); string topString = ""; string tafelString = ""; //tafel string waar alle tafels aan worden toegevoegt int counter = 1; foreach (Tafel tafel in Tafels) { bool alGereserveerd = false; if (tafel.Gereserveerd != null) { foreach (string data in tafel.Gereserveerd) { if (isEenTafelAlGereserveerd(data, checkDatum, checkTijd)) { alGereserveerd = true; break; } } } if (alGereserveerd != true) { tafelString += $"{tafel.ID},\t{tafel.Plekken}\t\t"; } if (counter % 3 == 0) { tafelString += "\n"; //zorgt voor in totaal 3 tabellen van tafels } counter++; } if (counter >= 3) { topString += "ID:\tPlek:\t\tID:\tPlek:\t\tID:\tPlek:\t"; } else if (counter == 2) { topString += "ID:\tPlek:\t\tID:\tPlek:\t"; } else { topString += "ID:\tPlek:\t"; } Console.WriteLine(topString); Console.WriteLine(tafelString); Console.WriteLine("\n\n0: Terug"); if (wrongInput) { Console.WriteLine("Verkeerde Input! Probeer 0"); } char userInput = Console.ReadKey().KeyChar; if (userInput == '0') { return; } wrongInput = true; } }