//Functie dat een reservering bewerkt public void editReservation(Reservation currentreservation) { Console.Clear(); Console.WriteLine("Huidige gegevens.\n"); currentreservation.Print(); Console.WriteLine("\nAls u iets wil veranderen kies dan een van deze opties.\n1: Naam\n2: E-mail\n3: Telefoonnummer\n4: Aantal personen\n5: Tijd van reservering\nAls u niks wilt veranderen kies dan 0.\n"); string decision = Console.ReadLine(); //Filter voor keuzes while (decision != "0" && decision != "1" && decision != "2" && decision != "3" && decision != "4" && decision != "5") { Console.WriteLine("Voer alstublieft alleen 0 tot en met 5 in.\n"); } //Naam veranderen if (decision == "1") { Console.WriteLine(); Console.WriteLine("Type de nieuwe naam in.\n"); string name = Console.ReadLine(); while (name.Length < 3 || name.Length > 20) { if (name.Length < 3) { Console.WriteLine("Type een langere naam in alstublieft.\n"); name = Console.ReadLine(); } else { Console.WriteLine("Type een kortere naam in alstublieft.\n"); name = Console.ReadLine(); } } currentreservation.name = name; currentreservation.edit = DateTime.Now; editReservation(currentreservation); } //E-mail veranderen else if (decision == "2") { Console.WriteLine(); Console.WriteLine("Type het nieuwe e-mail in.\n"); string email = Console.ReadLine(); char[] emailverify = email.ToCharArray(); while (!(emailverify.Contains('@'))) { Console.WriteLine(); Console.WriteLine("Uw e-mail moet @ bevatten. Type uw e-mail alstublieft opnieuw in."); Console.WriteLine(); email = Console.ReadLine(); emailverify = email.ToCharArray(); } currentreservation.email = email; currentreservation.edit = DateTime.Now; editReservation(currentreservation); } //Telefoonnummer veranderen else if (decision == "3") { int num; Console.WriteLine(); Console.WriteLine("Type het nieuwe telefoonnummer in.\n"); string phonenumber = Console.ReadLine(); while (phonenumber.Length != 10 || (!int.TryParse(phonenumber, out num))) { Console.WriteLine(); if (!int.TryParse(phonenumber, out num)) { Console.WriteLine("Een telefoonnummer bevat alleen nummers, type alstublieft een telefoonnummer in met 10 nummers.\n"); phonenumber = Console.ReadLine(); } else { Console.WriteLine("Type een telefoonnummer in met 10 nummers alstublieft.\n"); phonenumber = Console.ReadLine(); } } currentreservation.phonenumber = phonenumber; currentreservation.edit = DateTime.Now; editReservation(currentreservation); } //Aantal personen veranderen else if (decision == "4") { int num; Console.WriteLine(); Console.WriteLine("Voor hoeveel personen is de reservering? U kunt kiezen uit: 2 / 3 / 4 / 5\n"); string capacitynum = Console.ReadLine(); while (!int.TryParse(capacitynum, out num) || (capacitynum != "2" && capacitynum != "3" && capacitynum != "4" && capacitynum != "5")) { while (!int.TryParse(capacitynum, out num)) { Console.WriteLine(); Console.WriteLine("U kunt alleen de nummers: 2/3/4/5 invoeren en geen andere tekens."); Console.WriteLine("Voer alstublieft een correct nummer in.\n"); capacitynum = Console.ReadLine(); } Console.WriteLine(); Console.WriteLine("U kunt alleen kiezen uit: 2/3/4/5"); Console.WriteLine("Voer alstublieft een correct nummer in.\n"); capacitynum = Console.ReadLine(); } int capacity = Int32.Parse(capacitynum); currentreservation.capacity = capacity; currentreservation.edit = DateTime.Now; editReservation(currentreservation); } //Tijd veranderen else if (decision == "5") { Console.WriteLine(); Console.WriteLine("We zijn open van 8:00 tot 22:30. Voer de nieuwe tijd van de reservering in HH:MM formaat.\n"); DateTime time; while (true) { string timestr = Console.ReadLine(); Console.WriteLine(); if (!DateTime.TryParse(timestr, out time)) { Console.WriteLine("Tijd moet in formaat HH:MM, HH moet onder 25 zijn en MM moet onder 60 zijn.\n"); } else if ((time.Hour < 8 || time.Hour >= 23 || (time.Hour >= 22 && time.Minute >= 30))) { Console.WriteLine("Reserveringen zijn alleen beschikbaar tussen 08:00 en 22:30.\n"); } else if (time.Minute % 5 != 0) { Console.WriteLine($"{time.ToString("HH:mm")} is niet beschikbaar."); Console.WriteLine($"Keuze uit {time.Hour}:00 , {time.Hour}:05, {time.Hour}:10, {time.Hour}:15 enzovoort met intervallen van 5 minuten.\n"); } else { break; // Hier stopt de while loop, als we hier zijn dan is de tijd correct } } currentreservation.date = new DateTime(2020, currentreservation.date.Month, currentreservation.date.Day, time.Hour, time.Minute, 0); currentreservation.edit = DateTime.Now; editReservation(currentreservation); } else { Console.Clear(); Console.WriteLine("\nWe sturen u nu terug naar de reserveringsscherm.\n"); reservationMenu(); } string jsonstringreservations = JsonConvert.SerializeObject(Reservations, Formatting.Indented); StreamWriter sw = new StreamWriter("reservations.json"); sw.WriteLine(jsonstringreservations); sw.Flush(); sw.Close(); }