Пример #1
0
        //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();
        }