コード例 #1
0
        private void theFatDuckInformatie()
        {
            bool verkeerdeInput = false;

            while (true)
            {
                Console.Clear();
                Console.WriteLine(ASCIIART.InformatieArt());
                Console.WriteLine("The Fat Duck Restaurant\t\t\t\t\t\tAdres: Holland Amerikakade 104, 3072 MC Rotterdam");
                Console.WriteLine("\t\t\t\t\t\t\t\tEmail: [email protected]");
                Console.WriteLine("The Fat Duck Restaurant is opgericht in 2020 door\t\tTelefoon: 010 123 4567");
                Console.WriteLine("eigenaar Jake Darcy. Met een totaal van 100 zitplaatsen\t\tOpeningstijden: 11:00 tot 23:00");
                Console.WriteLine("heeft het restaurant twee verdiepingen, 50 per verdieping.\t");
                Console.WriteLine("The Fat Duck Restaurant specialiseert zich in Zuid-Oost\t\t");
                Console.WriteLine("Aziatische gerechten en adverteert zich op het gebruik\t\t");
                Console.WriteLine("van alleen de verste producten.\n");
                Console.WriteLine("0: Terug naar startscherm");
                if (verkeerdeInput)
                {
                    Console.WriteLine("VerkeerdeInput, probeer 0");
                }
                ConsoleKeyInfo userInput     = Console.ReadKey();
                char           userInputChar = userInput.KeyChar;
                if (userInputChar == '0')
                {
                    return;
                }
                verkeerdeInput = true;
            }
        }
コード例 #2
0
        private void VeranderGerechtNaam()
        {
            bool wrongInput = false;

            while (true)
            {
                Console.Clear();
                Console.WriteLine(ASCIIART.MenuArt());
                Console.WriteLine($"Naam aanpassen:\n\nDit is de oude naam: {naam}\n\nToets de nieuwe naam in en klik op enter\n\n0: Terug");
                if (wrongInput)
                {
                    Console.WriteLine("Foutieve input!\nZorg ervoor dat de naam alleen letters bevat.");
                    wrongInput = false;
                }
                string userInputNaam = Console.ReadLine();
                if (userInputNaam == "0") //Als de input "0" is , veranderd de attribuut naam niet.
                {
                    return;
                }
                else if (userInputNaam.Any(char.IsDigit)) //Checkt of er een getal tussen de letters staat.
                {
                    wrongInput = true;
                }
                else
                {
                    naam = userInputNaam;
                }
                return;
            }
        }
コード例 #3
0
        private void VeranderGerechtPrijs()
        {
            bool wrongInput = false;

            while (true)
            {
                Console.Clear();
                Console.WriteLine(ASCIIART.MenuArt());
                Console.WriteLine($"Prijs aanpassen:\n\nDit is de huidige prijs: {prijs}\n\nToets de nieuwe prijs in en klik op enter\n\n0: Terug");
                if (wrongInput)
                {
                    Console.WriteLine("Verkeerde Input! Voer een int (1) of double (1.x) in.");
                    wrongInput = false;
                }
                var userInputPrijs = Console.ReadLine();
                if (userInputPrijs == "0")
                {
                    return;
                }
                else
                {
                    try
                    {
                        var userInputPrijsConverted = double.Parse(userInputPrijs.Replace(',', '.'), CultureInfo.InvariantCulture);
                        prijs = userInputPrijsConverted;
                        return;
                    }
                    catch (FormatException)
                    {
                        wrongInput = true;
                    }
                }
            }
        }
コード例 #4
0
        /// <summary>
        /// Laat de clickstream per dag van de week of per uur zien
        /// </summary>
        public void bekijkClicks()
        {
            char Input = '1';

            while (Input != '0')
            {
                Console.Clear();
                Console.WriteLine(ASCIIART.ReserveringenArt());
                Console.WriteLine("1: Bekijk de clickstream per dag van de week\n2: Bekijk de clickstream per uur\n\n0: Ga terug naar het vorige scherm");
                Input = Console.ReadKey().KeyChar;
                switch (Input)
                {
                case '1':
                    bekijkClicksD();
                    break;

                case '2':
                    bekijkClicksT();
                    break;

                case '0':
                    break;

                default:
                    Console.WriteLine("Dit is geen geldige input\x0a\x0a" + "Enter: Ga terug naar het vorige scherm");
                    Console.ReadKey();
                    break;
                }
            }
        }
コード例 #5
0
        public void registreerMedewerker() //void omdat alleen een eigenaar een medewerker account aan kan maken, de medewerker wordt dus alleen maar toegevoegd aan de lijst van medewerkers.
        {
            Tuple <string, string, string, string> medewerkerInformatie = registreer();

            if (medewerkerInformatie == null)
            {
                return;
            }


            var jsonOptions = new JsonSerializerOptions
            {
                WriteIndented = true,
            };

            Medewerker[] nieuweMedewerkerLijst = new Medewerker[Medewerkers.Length + 1];

            for (int i = 0; i < Medewerkers.Length; i++)
            {
                nieuweMedewerkerLijst[i] = Medewerkers[i];                                                                                                                //Voert alle oude medewerkers als Medewerker object in de nieuwe lijst
            }
            Medewerker nieuweMedewerker = new Medewerker(medewerkerInformatie.Item1, medewerkerInformatie.Item2, medewerkerInformatie.Item3, medewerkerInformatie.Item4); //nieuwe medewerker wordt aangemaakt.

            nieuweMedewerkerLijst[nieuweMedewerkerLijst.Length - 1] = nieuweMedewerker;                                                                                   //voegt nieuwe medewerker toe aan lijst
            Medewerkers = nieuweMedewerkerLijst;
            var toSerializeMedewerker = JsonSerializer.Serialize(this, jsonOptions);

            File.WriteAllText("gebruikers.json", toSerializeMedewerker);
            Console.Clear();
            Console.WriteLine(ASCIIART.RegistrerenArt());
            Console.WriteLine($"Medewerker {medewerkerInformatie.Item1} toegevoegd aan de lijst van medewerkers!\nKlik op een toets om terug te gaan");
            Console.ReadKey();
            return;
        }
コード例 #6
0
        public override void bekijkAccount()
        {
            bool verkeerdeInput = false;

            while (true)
            {
                Console.Clear();
                Console.WriteLine(ASCIIART.AccountArt());
                Console.WriteLine($"Naam: {Naam}\x0a");
                Console.WriteLine($"Adres: {Adres}\x0a");
                Console.WriteLine($"Woonplaats: {Woonplaats}\x0a");
                Console.WriteLine($"Account Type: Klant\x0a\n");;
                Console.WriteLine("0: Terug");
                if (verkeerdeInput)
                {
                    Console.WriteLine("Verkeerde Input! Probeer 0");
                }

                char userInput = Console.ReadKey().KeyChar;
                switch (userInput)
                {
                case '0':
                    return;

                default:
                    verkeerdeInput = true;
                    break;
                }
            }
        }
コード例 #7
0
        public Gebruiker registreerKlant(Gebruiker gebruiker)
        {
            Tuple <string, string, string, string> klantInformatie = registreer();

            if (klantInformatie == null)
            {
                return(gebruiker);
            }

            var jsonOptions = new JsonSerializerOptions
            {
                WriteIndented = true,
            };

            Klant[] nieuweKlantenLijst = new Klant[Klanten.Length + 1];

            for (int i = 0; i < Klanten.Length; i++)
            {
                nieuweKlantenLijst[i] = Klanten[i];                                                                                    //Voert alle oude klanten als Klant object in de nieuwe lijst
            }
            Klant nieuweKlant = new Klant(klantInformatie.Item1, klantInformatie.Item2, klantInformatie.Item3, klantInformatie.Item4); //nieuwe klant wordt aangemaakt

            nieuweKlantenLijst[nieuweKlantenLijst.Length - 1] = nieuweKlant;                                                           //voegt nieuwe klant toe aan lijst
            Klanten = nieuweKlantenLijst;                                                                                              //Klanten array van gebruikers wordt aangepast naar de nieuwe lijst die is gemaakt.
            var toSerializeKlant = JsonSerializer.Serialize(this, jsonOptions);

            File.WriteAllText("gebruikers.json", toSerializeKlant);


            Console.Clear();
            Console.WriteLine(ASCIIART.RegistrerenArt());
            Console.WriteLine($"Welkom nieuwe klant: {klantInformatie.Item1}!\nKlik op een toets om verder te gaan");
            Console.ReadKey();
            return(nieuweKlant);
        }
コード例 #8
0
        private bool ConfirmatieToevoegen()
        {
            bool wrongInput = false;

            while (true)
            {
                Console.Clear();
                Console.WriteLine(ASCIIART.MenuArt());
                Console.WriteLine($"{naam} wordt toegevoegd aan het menu, weet u dit zeker?\n\n1: Ja, en ga terug\n\n0: Nee en werkt verder aan het gerecht.");
                if (wrongInput)
                {
                    Console.WriteLine("Verkeerde input! Probeer 1 of 0");
                }
                char userInput = Console.ReadKey().KeyChar;
                switch (userInput)
                {
                case '1':
                    return(true);

                case '0':
                    return(false);

                default:
                    wrongInput = true;
                    break;
                }
            }
        }
コード例 #9
0
        private bool ConfirmatieAnnuleren()
        {
            bool wrongInput = false;

            while (true)
            {
                Console.Clear();
                Console.WriteLine(ASCIIART.MenuArt());
                Console.WriteLine("Er wordt geen gerecht toegevoegd, weet u dit zeker?\n\n1: Ja, en ga terug\n\n0: Nee en werkt verder aan het gerecht.");
                if (wrongInput)
                {
                    Console.WriteLine("Verkeerde input! Probeer 1 of 0");
                }
                char userInput = Console.ReadKey().KeyChar;
                switch (userInput)
                {
                case '1':
                    naam = "Voer een naam in";     //als het item niet hoeft worden toegevoegd en de gebruiker terug wilt, wordt de naam op de standard string gezet. Dit wordt gedaan om er zeker van te zijn dat het gerecht niet toch wordt toegevoegd (wat zou gebeuren als alle attributen correct waren aangepast voor het annuleren)
                    return(true);

                case '0':
                    return(false);

                default:
                    wrongInput = true;
                    break;
                }
            }
        }
コード例 #10
0
 /// <summary>
 /// Laat de gegevens van de reservering zien
 /// </summary>
 public void Info()
 {
     Console.WriteLine(ASCIIART.ReserverenArt());
     Console.WriteLine("Klant:\t\t" + this.Bezoeker);
     Console.WriteLine("Tijd:\t\t" + TijdString());
     Console.WriteLine("Datum:\t\t" + this.Datum);
     Console.WriteLine("Personen:\t" + this.Personen);
     Console.WriteLine("Gerechten:");
     Console.OutputEncoding = System.Text.Encoding.UTF8;
     foreach (var bestellingItem in this.Bestelling)
     {
         string totaalprijs = "" + bestellingItem.TotaalPrijs;
         totaalprijs += (!totaalprijs.Contains(',') ? ",-" : totaalprijs[totaalprijs.Length - 2] == ',' ? "0" : "");
         Console.Out.WriteLine($"- {bestellingItem.Naam}: ({bestellingItem.Aantal}x), €{totaalprijs}");
     }
     Console.WriteLine("Tafels:");
     if (this.Tafels == null)
     {
         Console.WriteLine("Nog geen tafels gekoppeld aan deze reservering.");
     }
     else
     {
         foreach (Tafel tafel in this.Tafels)
         {
             Console.WriteLine($"- {tafel.ID}: {tafel.Plekken} plekken");
         }
     }
 }
コード例 #11
0
        public override char startScherm()
        {
            bool verkeerdeInput = false;

            while (true)
            {
                Console.Clear();
                Console.WriteLine(ASCIIART.GeneralArt());
                Console.WriteLine("STATUS: Ingelogd als eigenaar\x0a");
                Console.WriteLine("1: Informatie\x0a");
                Console.WriteLine("2: Logout\n");
                Console.WriteLine("3: Voeg nieuwe medewerker toe\n");
                Console.WriteLine("4: Bezichtig het menu\x0a");
                Console.WriteLine("5: Bezichtig reserveringen\x0a");
                Console.WriteLine("6: Bezichtig de Clickstream\x0a");
                Console.WriteLine("7: Bezichtig de dagelijkse opbrensten\n");
                Console.WriteLine("0: Applicatie afsluiten\x0a");

                if (verkeerdeInput)
                {
                    Console.WriteLine("Verkeerde input, probeer 1, 2, 3, 4, 5, 6, 7, of 0");
                }

                ConsoleKeyInfo userInput     = Console.ReadKey();
                char           userInputChar = userInput.KeyChar;
                switch (userInputChar)
                {
                case '1':
                    return('1');

                case '2':
                    return('4');

                case '3':
                    return('B');

                case '4':
                    return('4');

                case '5':
                    return('C');

                case '6':
                    return('7');

                case '7':
                    return('6');

                case '0':
                    return('8');

                default:
                    verkeerdeInput = true;
                    break;
                }
            }
        }
コード例 #12
0
        /// <summary>
        /// Scherm vanaf waar de medewerker/eigenaar items kan verwijderen uit het menu
        /// </summary>
        /// <param name="typeGerecht">Array met de type gerechten van waar een item weg moet.</param>
        /// <param name="typeGerechtNaam">Naam van de array. Bijv: Voorgerechten</param>
        /// <returns></returns>
        private Gerecht[] removeItemScreen(Gerecht[] typeGerecht, string typeGerechtNaam) //Print de gerechten met de optie om die te verwijderen uit de lijst
        {
            while (true)
            {
                Console.Clear();
                Console.WriteLine(ASCIIART.MenuArt());
                Console.WriteLine("Item uit " + typeGerechtNaam + " menu verwijderen\x0aToets op het getal naast het menu item wat u weg wil en enter om het te verwijderen\x0a");
                if (typeGerecht.Length > 0)
                {
                    for (int i = 1; i < typeGerecht.Length + 1; i++)
                    {
                        Console.WriteLine(i + ": " + typeGerecht[i - 1].naam + "\x0A");
                    }
                }
                else
                {
                    Console.WriteLine("<Er bestaan nog geen " + typeGerechtNaam + " in het menu>");
                }

                Console.WriteLine("\n0: Terug");
                ConsoleKeyInfo userInput     = Console.ReadKey();
                char           userInputChar = userInput.KeyChar;

                if (userInputChar == '0')
                {
                    return(typeGerecht);
                }
                try
                {
                    var userInputConverted = Int32.Parse(userInputChar.ToString());
                    Console.Clear();
                    Console.WriteLine(ASCIIART.MenuArt());
                    Console.WriteLine($"Weet u zeker dat u {typeGerecht[userInputConverted - 1].naam} wil verwijderen uit het menu?\n\nA: Item definitief verwijderen\n0: Terug");

                    ConsoleKeyInfo confirmInput     = Console.ReadKey();
                    char           confirmInputChar = confirmInput.KeyChar;
                    if (confirmInputChar == 'A' || confirmInputChar == 'a')
                    {
                        typeGerecht = removeItemMenu(typeGerecht, typeGerechtNaam, userInputConverted);
                        Console.Clear();
                        Console.WriteLine(ASCIIART.MenuArt());
                        Console.WriteLine("Item is verwijderd uit het menu!\n\n0: Terug naar menu aanpassen");
                        Console.ReadKey();
                        return(typeGerecht);
                    }
                }
                catch
                {
                    if (userInputChar == '0')
                    {
                        return(typeGerecht);
                    }
                }
            }
        }
コード例 #13
0
        public ReserveerLijst BekijkReserveringenMedewerker(TafelArray tafels)
        {
            if (Reserveringen == null)
            {
                Reserveringen = new Reservering[0];
            }
            if (Reserveringen.Length == 0)
            {
                Console.Clear();
                Console.WriteLine(ASCIIART.ReserveringenArt());
                Console.WriteLine("Er zijn nog geen reserveringen gemaakt\x0a\x0a" + "Klik op een toets om terug te gaan");
                Console.ReadKey();
                return(this);
            }
            while (true)
            {
                Console.Clear();
                Console.WriteLine(ASCIIART.ReserveringenArt());
                Console.WriteLine("Voor welke datum wilt u de reserveringen bekijken? (21 juni)\n\nEnter: Ga terug naar het vorige scherm");
                string datum = Console.ReadLine();
                datum.ToLower();
                Console.Clear();
                if (datum == "")
                {
                    return(this);
                }

                datum = CheckDatum.checkDatum(datum);
                int AantalRelevanteReserveringen = BerekenRelevanteReserveringen(datum);
                if (AantalRelevanteReserveringen <= 0)
                {
                    Console.Clear();
                    Console.WriteLine(ASCIIART.ReserveringenArt());
                    Console.WriteLine("Er zijn nog geen reserveringen gedaan voor deze datum of de datum is ongeldig. Klik op een toets om terug te gaan.\x0a");
                    Console.ReadKey();
                }
                else
                {
                    Reservering[] RelevanteReserveringen = new Reservering[AantalRelevanteReserveringen];
                    int           j = 0;
                    foreach (Reservering reservering in Reserveringen)
                    {
                        if (reservering.Datum == datum)
                        {
                            RelevanteReserveringen[j++] = reservering;
                        }
                    }
                    BekijkSpecifiekePaginaMedewerker(RelevanteReserveringen, tafels, datum);
                }
            }
        }
コード例 #14
0
        private void VeranderGerechtBeschrijving()
        {
            Console.Clear();
            Console.WriteLine(ASCIIART.MenuArt());
            Console.WriteLine($"Beschrijving aanpassen:\n\nDit is de huidige beschrijving: {beschrijving}\n\nToets de nieuwe beschrijving in en klik op enter\n\n0: Terug");
            var userInputBeschrijving = Console.ReadLine();

            if (userInputBeschrijving == "0")
            {
                return;
            }
            beschrijving = userInputBeschrijving;
            return;
        }
コード例 #15
0
        public override char startScherm()
        {
            bool verkeerdeInput = false;

            while (true)
            {
                Console.Clear();
                Console.WriteLine(ASCIIART.GeneralArt());
                Console.WriteLine($"STATUS: Ingelogd als klant, welkom {Naam}\x0a");
                Console.WriteLine("1: Restaurant informatie\x0a");
                Console.WriteLine("2: Account informatie\n");
                Console.WriteLine("3: Logout\n");
                Console.WriteLine("4: Bezichtig het menu\x0a");
                Console.WriteLine("5: Reserveren\x0a");
                Console.WriteLine("6: Bezichtig uw reserveringen");

                if (verkeerdeInput)
                {
                    Console.WriteLine("Verkeerde input, probeer 1,2,3,4 of 5 of 6.");
                }

                ConsoleKeyInfo userInput     = Console.ReadKey();
                char           userInputChar = userInput.KeyChar;
                switch (userInputChar)
                {
                case '1':
                    return('1');

                case '2':
                    return('A');

                case '3':
                    return('3');

                case '4':
                    return('4');

                case '5':
                    return('5');

                case '6':
                    return('9');

                default:
                    verkeerdeInput = true;
                    break;
                }
            }
        }
コード例 #16
0
        /// <summary>
        /// Functie die naam, beschrijving prijs en ingredienten van een gerecht print.
        /// </summary>
        /// <param name="gerecht">Gerecht object waarvan de informatie geladen moet worden</param>
        private void ShowItemStandaard(Gerecht gerecht) //Print informatie over een specifiek gerecht uit het menu
        {
            Console.OutputEncoding = System.Text.Encoding.UTF8;
            string totaalprijs = "" + gerecht.prijs;

            totaalprijs += (!totaalprijs.Contains(',') ? ",-" : totaalprijs[totaalprijs.Length - 2] == ',' ? "0" : "");
            Console.Clear();
            Console.WriteLine(ASCIIART.MenuArt());
            Console.WriteLine($"Gerecht: " + gerecht.naam + "\x0A");
            Console.Out.WriteLine($"Prijs: €{totaalprijs}\x0a");
            Console.WriteLine($"Beschrijving: " + gerecht.beschrijving + "\x0a");
            Console.WriteLine($"Ingredienten: ");
            for (int i = 0; i < gerecht.ingredienten.Count; i++)
            {
                Console.WriteLine($"- {gerecht.ingredienten[i]}");
            }
        }
コード例 #17
0
 /// <summary>
 /// Print de lijst met verschillende typen gerechten
 /// </summary>
 /// <param name="typeGebruiker">Type gebruiker die de lijst probeert te bekijken. Bijv: Medewerker</param>
 private void KiesMenuOpties(string typeGebruiker) //Print de lijst met typen Gerechten
 {
     Console.Clear();
     Console.WriteLine(ASCIIART.MenuArt());
     if (typeGebruiker == "Klant")
     {
         Console.WriteLine("Kies het type gerecht wat u wilt toevoegen aan uw reservering:\x0A\x0A");
     }
     else
     {
         Console.WriteLine("KIES HET TYPE GERECHT:\x0A\x0A");
     }
     Console.WriteLine("1: Voorgerechten\x0A");
     Console.WriteLine("2: Hoofdgerechten\x0A");
     Console.WriteLine("3: Nagerechten\x0A\x0a");
     Console.WriteLine("0: Terug");
 }
コード例 #18
0
        /// <summary>
        /// Laat de opbrengst van een gegeven datum zien
        /// </summary>
        /// <param name="reserveerlijst">Array van reserveringen</param>
        public void bekijkRevenue(TheFatDuckRestaurant.Reservering[] reserveerlijst)
        {
            string Datum = "";

            while (Datum != "0")
            {
                Console.Clear();
                Console.WriteLine(ASCIIART.OpbrengstenArt());
                Console.WriteLine("Voor welke dag wilt u de opbrengst bekijken? (21 juni 2021)\n\n0: Ga terug naar het startscherm");
                Datum = Console.ReadLine();
                Console.Clear();
                if (Datum != "0")
                {
                    Datum = CheckDatum.checkDatum(Datum, false);
                    if (Datum != null)
                    {
                        if (!oudeRevenue(Datum))
                        {
                            double Revenue = 0;
                            Console.OutputEncoding = System.Text.Encoding.UTF8;
                            foreach (TheFatDuckRestaurant.Reservering reservering in reserveerlijst)
                            {
                                if (Datum == reservering.Datum)
                                {
                                    for (int i = 0; i < reservering.Bestelling.Count; i++)
                                    {
                                        Revenue += reservering.Bestelling[i].Prijs * reservering.Bestelling[i].Aantal;
                                    }
                                }
                            }
                            string revenue = "" + Revenue;
                            revenue += (!revenue.Contains(',') ? ",-" : revenue[revenue.Length - 2] == ',' ? "0" : "");
                            Console.WriteLine(ASCIIART.OpbrengstenArt());
                            Console.Out.WriteLine($"De opbrengst van {Datum} is €{revenue}\n\nEnter: Ga terug naar het vorige scherm");
                            Console.ReadKey();
                        }
                    }
                    else
                    {
                        Console.WriteLine(ASCIIART.OpbrengstenArt());
                        Console.WriteLine("Deze datum bestaat niet!\nKlik op een toets om terug te gaan");
                        Console.ReadKey();
                    }
                }
            }
        }
コード例 #19
0
        /// <summary>
        /// Doet he tzelfde als ShowItemHandler maar geeft ook de optie om het gerecht toe te voegen aan een reservering
        /// </summary>
        /// <param name="geladenMenu">Array met het type gerecht</param>
        /// <param name="toetsUserChar">Index van het type gerecht</param>
        /// <param name="paginaNR">Index van op welke pagina het gerecht zich bevindt</param>
        /// <returns></returns>
        private Bestelling ShowItemReserveringHandler(Gerecht[] geladenMenu, char toetsUserChar, int paginaNR) //Toont informatie over specifiek gerecht en geeft optie om het item toe te voegen aan je reservering
        {
            try
            {
                bool specifiekPassed = false;
                while (true)
                {
                    ShowItemStandaard(geladenMenu[(Int32.Parse(toetsUserChar.ToString()) - 1) + (7 * paginaNR)]); //7 * paginaNR zorgt ervoor dat het juiste item wordt laten zien
                    Console.WriteLine("\nR: Toevoegen aan reservering");
                    Console.WriteLine($"0 : Terug");
                    ConsoleKeyInfo toetsUsr     = Console.ReadKey();
                    char           toetsUsrChar = toetsUsr.KeyChar;

                    if (toetsUsrChar == 'R' || toetsUsrChar == 'r') //Indien er op R wordt geklikt wordt het item toegevoegd aan de lijst met Bestellingen.
                    {
                        while (specifiekPassed != true)
                        {
                            Console.Clear();
                            Console.WriteLine(ASCIIART.ReserverenArt()); //Vraagt hoeveel je van het item wil toevoegen aan je reservering, indien je 0 klikt ga je terug en voeg je het niet toe.
                            Console.WriteLine("Toets hoeveel u van " + geladenMenu[(Int32.Parse(toetsUserChar.ToString()) - 1) + (7 * paginaNR)].naam + " wil bestellen en enter om dit toe te voegen aan uw reservering\n\n0: Terug");
                            var amountStr = Console.ReadLine();
                            if (amountStr == "0")
                            {
                                break;
                            }
                            try
                            {
                                int amount = Int32.Parse(amountStr); //Als er wel gereserveerd is wordt het item aan de lijst met Bestellingen toegevoegd.
                                if (amount < 100)
                                {
                                    return(new Bestelling(geladenMenu[(Int32.Parse(toetsUserChar.ToString()) - 1) + (7 * paginaNR)].naam, geladenMenu[(Int32.Parse(toetsUserChar.ToString()) - 1) + (7 * paginaNR)].prijs, amount));
                                }
                            }
                            catch { };
                        }
                    }
                    if (toetsUsrChar == '0')
                    {
                        return(null);
                    }
                }
            }
            catch { return(null); }
        }
コード例 #20
0
 /// <summary>
 /// Ontkoppelen van Tafels met ID
 /// </summary>
 /// <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> OntKoppelenMetID(List <Tafel> gereserveerdeTafels, string tijdEnDatum)
 {
     while (true)
     {
         Console.Clear();
         Console.WriteLine(ASCIIART.TafelsOntkoppelenArt());
         Console.WriteLine("Voer het ID van de tafel in die u wilt ontkoppelen\n\nKlik op 0 en klik enter om terug te gaan");
         string userInput = Console.ReadLine();
         if (userInput == "0")
         {
             return(gereserveerdeTafels);
         }
         bool tafelSuccesvolOntkoppeld = false;
         for (int j = 0; j < gereserveerdeTafels.Count; j++) //voor elke tafel die in de gereserveerdeTafels staat van de klant
         {
             if (gereserveerdeTafels[j].ID == userInput)
             {
                 for (int i = 0; i < gereserveerdeTafels[j].Gereserveerd.Count; i++) //voor elke datum die in Gereserveerd staat van de klant
                 {
                     if (gereserveerdeTafels[j].Gereserveerd[i] == tijdEnDatum)      //Als de tafel daadwerkelijk is gekoppeld voor dezelfde tijd
                     {
                         Console.Clear();
                         Console.WriteLine(ASCIIART.TafelsOntkoppelenArt());
                         Console.WriteLine($"{gereserveerdeTafels[j].ID} succesvol ontkoppeld van de reservering\n\nKlik op een toets om door te gaan");
                         gereserveerdeTafels[j].Gereserveerd.Remove(tijdEnDatum);
                         gereserveerdeTafels.Remove(gereserveerdeTafels[j]);
                         tafelSuccesvolOntkoppeld = true;
                         Console.ReadKey();
                         break;
                     }
                 }
             }
         }
         if (!tafelSuccesvolOntkoppeld) //Als de tafels niet succesvol zijn ontkoppeld
         {
             Console.Clear();
             Console.WriteLine(ASCIIART.TafelsOntkoppelenArt());
             Console.WriteLine($"Tafel {userInput} is niet gevonden voor deze reservering.\n\nKlik op een toets om terug te gaan");
             Console.ReadKey();
         }
     }
 }
コード例 #21
0
        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;
            }
        }
コード例 #22
0
        public void changeReservering(Reservering reservering, TafelArray tafels)
        {
            while (true)
            {
                Console.Clear();
                reservering.Info();
                Console.WriteLine("\nR: Verwijder reservering\n0: Terug");
                ConsoleKeyInfo toetsUser     = Console.ReadKey();
                char           toetsUserChar = toetsUser.KeyChar;
                if (toetsUserChar == '0')
                {
                    return;
                }
                if (toetsUserChar == 'R' || toetsUserChar == 'r')
                {
                    while (true)
                    {
                        Console.Clear();
                        Console.WriteLine(ASCIIART.ReserverenArt());
                        Console.WriteLine($"Weet u zeker dat u uw reservering voor {reservering.Datum} wil verwijderen?\n\nR: Verwijder reservering\n0: Terug");

                        ConsoleKeyInfo toetsUserBevestig     = Console.ReadKey();
                        char           toetsUserBevestigChar = toetsUserBevestig.KeyChar;

                        if (toetsUserBevestigChar == '0')
                        {
                            break;
                        }
                        if (toetsUserBevestigChar == 'r' || toetsUserBevestigChar == 'R')
                        {
                            removeReservering(reservering, tafels);
                            Console.Clear();
                            Console.WriteLine(ASCIIART.ReserverenArt());
                            Console.WriteLine("Uw reservering is succesvol verwijderd\n\n0: Terug");
                            Console.ReadKey();
                            return;
                        }
                    }
                }
            }
        }
コード例 #23
0
        private void VeranderGerechtIngredienten()
        {
            while (true)
            {
                Console.Clear();
                Console.WriteLine(ASCIIART.MenuArt());
                Console.WriteLine($"Ingredienten aanpassen:");
                if (ingredienten.Count != 0)
                {
                    Console.WriteLine("\nAls u een ingredient wil verwijderen toets dan de index in die ernaast staat\nDit zijn de huidige ingredienten:");
                    for (int i = 0; i < ingredienten.Count; i++)
                    {
                        Console.WriteLine($"{i + 1} - {ingredienten[i]}");
                    }
                }
                else
                {
                    Console.WriteLine("\n<Nog geen ingredienten>");
                }
                Console.WriteLine("\nToets een nieuw ingredient in en klik op enter\n\n0: Terug");
                var userInputIngredienten = Console.ReadLine();

                try
                {
                    var removeIndex = Int32.Parse(userInputIngredienten) - 1;
                    ingredienten.RemoveAt(removeIndex);
                }
                catch
                {
                    int tempInt;
                    if (userInputIngredienten == "0")
                    {
                        return;
                    }
                    else if (userInputIngredienten != "" && int.TryParse(userInputIngredienten, out tempInt) != true)
                    {
                        ingredienten.Add(userInputIngredienten);
                    }
                }
            }
        }
コード例 #24
0
        public Gebruiker logOut()
        {
            bool wrongInput = false;

            while (true)
            {
                Console.Clear();
                Console.WriteLine(ASCIIART.LogoutArt());
                Console.WriteLine("U bent uitgelogd!\n\n0: Terug");
                if (wrongInput)
                {
                    Console.WriteLine("Verkeerde Input! Probeer 0");
                }
                char userInput = Console.ReadKey().KeyChar;
                if (userInput == '0')
                {
                    return(new Gebruiker("", "", "", ""));
                }
                wrongInput = true;
            }
        }
コード例 #25
0
 /// <summary>
 /// Checkt of de datum in het JSON-bestand staat
 /// Zoja, dan wordt de opbrengst van deze dag getoond
 /// </summary>
 /// <param name="Datum"></param>
 /// <returns>true als de datum bestaat in het JSON-bestand, anders false</returns>
 private bool oudeRevenue(string Datum)
 {
     if (Revenues != null)
     {
         Console.OutputEncoding = System.Text.Encoding.UTF8;
         foreach (DailyRevenue dailyrevenue in Revenues)
         {
             if (dailyrevenue.Datum == Datum)
             {
                 Console.Clear();
                 Console.WriteLine(ASCIIART.OpbrengstenArt());
                 string revenue = "" + dailyrevenue.Revenue;
                 revenue += (!revenue.Contains(',') ? ",-" : revenue[revenue.Length - 2] == ',' ? "0" : "");
                 Console.Out.WriteLine($"De opbrengst van {Datum} is €{revenue}\n\nEnter: Ga terug naar het vorige scherm");
                 Console.ReadKey();
                 return(true);
             }
         }
     }
     return(false);
 }
コード例 #26
0
        public void RemoveTafels(TafelArray tafels, bool klantCall = false) //klantCall is een variabele die op true wordt gezet als er vanuit een klant een reservering wordt verwijderd.
        {
            bool wrongInput = false;

            while (true)
            {
                if (klantCall)
                {
                    this.Tafels = tafels.AllesAutomatischOntkoppelen(this.Tafels, $"{this.Tijd}{this.Datum}", true);
                    return;
                }
                Console.Clear();
                Console.WriteLine(ASCIIART.TafelsOntkoppelenArt());
                Console.WriteLine("1: Alles ontkoppelen");
                Console.WriteLine("2: Ontkoppelen met tafel ID");
                Console.WriteLine("0: Terug");
                if (wrongInput)
                {
                    Console.WriteLine("Wrong input! Probeer 1, 2 of 0");
                }
                char userInput = Console.ReadKey().KeyChar;
                switch (userInput)
                {
                case '1':
                    this.Tafels = tafels.AllesAutomatischOntkoppelen(this.Tafels, $"{this.Tijd}{this.Datum}");
                    break;

                case '2':
                    this.Tafels = tafels.OntKoppelenMetID(this.Tafels, $"{this.Tijd}{this.Datum}");
                    break;

                case '0':
                    return;

                default:
                    wrongInput = true;
                    break;
                }
            }
        }
コード例 #27
0
        /// <summary>
        /// Laat de clickstream per uur zien
        /// </summary>
        private void bekijkClicksT()
        {
            Console.Clear();
            Console.WriteLine(ASCIIART.ReserveringenArt());
            int NietAanwezig = 0;

            foreach (CSTijd Tijd in Tijden)
            {
                if (Tijd.Clicks > 0)
                {
                    Console.WriteLine(Tijd.Naam + $": {Tijd.Clicks} reserveringen\n");
                }
                else
                {
                    NietAanwezig++;
                }
            }
            if (NietAanwezig == Tijden.Length)
            {
                Console.WriteLine("Er zijn nog geen reserveringen gemaakt");
            }
            Console.WriteLine("\nEnter: Ga terug naar het vorige scherm");
            Console.ReadKey();
        }
コード例 #28
0
        /// <summary>
        /// Laad alle gerechten die mee zijn gestuurd in de typeGerecht parameter, en print ook de optie om de gerechten aan te passen indien de gebruiker een eigenaar of medewerker is.
        /// </summary>
        /// <param name="typeGerecht">Array met de typen gerechten die worden geladen. Bijv: Voorgerechten</param>
        /// <param name="typeGebruiker">String die de type gebruiker meestuurd. Bijv: Medewerker</param>
        /// <returns></returns>
        private Bestelling LaadSpecifiekMenu(Gerecht[] typeGerecht, string typeGebruiker) //Laad de gerechten van het type menu (Voorgerechten, Hoofdgerechten, Nagerechten etc).
        {
            int  huidigePaginaNR = 0;                                                     //Bij de eerste keer laden van het menu zal de eerste 7 gerechten worden getoont.
            bool verkeerdeInput  = false;

            while (true)
            {
                Console.Clear();
                Console.WriteLine(ASCIIART.MenuArt());
                if (typeGerecht == Voorgerechten)
                {
                    Console.WriteLine($"\nVoorgerechten\n");
                }
                else if (typeGerecht == Hoofdgerechten)
                {
                    Console.WriteLine($"\nHoofdgerechten\n");
                }
                else
                {
                    Console.WriteLine($"\nNagerechten\n");
                }

                int hoeveelheidPaginas = (int)Math.Ceiling(typeGerecht.Length / 7.0); //Berekent hoeveel pagina's van 7 gerechten er moeten zijn om alle gerechten te kunnen tonen (Bijv. 25 / 7 = 4 paginas)
                Console.WriteLine($"Pagina {huidigePaginaNR + 1}/{hoeveelheidPaginas}\n");
                for (int i = 1; i < 8; i++)                                           //Laat 7 gerechten zien per slide
                {
                    try
                    {
                        Console.WriteLine(i + ": " + typeGerecht[(i - 1) + (7 * huidigePaginaNR)].naam + "\x0A"); //1 : "GerechtNaam" (etc), laat alleen de gerechten zien voor de juiste pagina nr
                    }
                    catch (IndexOutOfRangeException) { } //Omdat de gerechten per 7 worden laten zien, zal er bij 5 gerechten op een pagina een error komen omdat het programma niet bestaande gerechten 6 en 7 ook probeert te tonen.
                }
                if (huidigePaginaNR + 1 < hoeveelheidPaginas)
                {
                    Console.WriteLine("8: Volgende pagina");
                }
                if (huidigePaginaNR + 1 >= hoeveelheidPaginas && (hoeveelheidPaginas > 1))
                {
                    Console.WriteLine("9: Vorige pagina");
                }


                if (typeGebruiker == "Medewerker") //Als de gebruiker een medewerker is, dan moet er een extra print komen met de optie om het menu aan te passen
                {
                    Console.WriteLine("A: Menu aanpassen");
                }
                Console.WriteLine("0: Terug");

                if (verkeerdeInput)
                {
                    Console.WriteLine("ERROR: Toets een geldig index in");
                    verkeerdeInput = false;
                }
                ConsoleKeyInfo toetsUser     = Console.ReadKey();
                char           toetsUserChar = toetsUser.KeyChar;

                if (typeGebruiker == "Medewerker" && (toetsUserChar == 'A' || toetsUserChar == 'a')) //Indien de gebruiker die het menu opent een Medewerker is, moet hij het menu kunnen aanpassen
                {
                    typeGerecht = MenuAanpassenScherm(typeGerecht);
                }

                else if (huidigePaginaNR + 1 < hoeveelheidPaginas && toetsUserChar == '8')
                {
                    huidigePaginaNR++;
                }

                else if (huidigePaginaNR + 1 >= hoeveelheidPaginas && (hoeveelheidPaginas > 1) && toetsUserChar == '9')
                {
                    huidigePaginaNR--;
                }

                else if (toetsUserChar == '0')
                {
                    return(null);
                }
                else if (typeGebruiker == "Klant") //Indien er als klant is ingelogd, moet er bij het klikken op een gerecht de optie worden geprint om het item toe te kunnen voegen aan een reservering
                {
                    return(ShowItemReserveringHandler(typeGerecht, toetsUserChar, huidigePaginaNR));
                }
                else
                {
                    if (ShowItemHandler(typeGerecht, toetsUserChar, huidigePaginaNR) == false)
                    {
                        verkeerdeInput = true;
                    }
                }
            }
        }
コード例 #29
0
        /// <summary>
        /// Scherm waar de medewerker/eigenaar het menu kan aanpassen
        /// </summary>
        /// <param name="typeGerecht">Array met het type gerecht array wat moet worden aangepast. Bijv: Voorgerechten</param>
        /// <returns></returns>
        private Gerecht[] MenuAanpassenScherm(Gerecht[] typeGerecht) //Handelt het toevoegen van een item aan een specifiek menu.
        {
            while (true)
            {
                Console.Clear();
                Console.WriteLine(ASCIIART.MenuArt());
                if (typeGerecht == Voorgerechten)
                {
                    Console.WriteLine("Voorgerechten menu aanpassen\n\n1: Item toevoegen\n\n2: Item verwijderen\n\n0: Terug");
                }
                else if (typeGerecht == Hoofdgerechten)
                {
                    Console.WriteLine("Hoofdgerechten menu aanpassen\n\n1: Item toevoegen\n\n2: Item verwijderen\n\n0: Terug");
                }
                else
                {
                    Console.WriteLine("Nagerechten menu aanpassen\n\n1: Item toevoegen\n\n2: Item verwijderen\n\n0: Terug");
                }
                ConsoleKeyInfo toetsUser     = Console.ReadKey();
                char           toetsUserChar = toetsUser.KeyChar;
                //Afhankelijk van het menu wat je wil aanpassen, zal de AddItemHandler worden gecalled.
                switch (toetsUserChar)
                {
                case '1':
                    if (typeGerecht == Voorgerechten)
                    {
                        AddItemHandler("Voorgerechten");
                        typeGerecht = Voorgerechten;
                    }
                    else if (typeGerecht == Hoofdgerechten)
                    {
                        AddItemHandler("Hoofdgerechten");
                        typeGerecht = Hoofdgerechten;
                    }
                    else
                    {
                        AddItemHandler("Nagerechten");
                        typeGerecht = Nagerechten;
                    }
                    break;

                case '2':     //Indien je een item wil verwijderen, zal het correcte menu worden geladen met removeItemScreen.
                    if (typeGerecht == Voorgerechten)
                    {
                        typeGerecht = removeItemScreen(typeGerecht, "Voorgerechten");
                    }
                    else if (typeGerecht == Hoofdgerechten)
                    {
                        typeGerecht = removeItemScreen(typeGerecht, "Hoofdgerechten");
                    }
                    else
                    {
                        typeGerecht = removeItemScreen(typeGerecht, "Nagerechten");
                    }
                    break;

                case '0':
                    if (typeGerecht == Voorgerechten)
                    {
                        return(Voorgerechten);
                    }
                    else if (typeGerecht == Hoofdgerechten)
                    {
                        return(Hoofdgerechten);
                    }
                    else
                    {
                        return(Nagerechten);
                    }
                }
            }
        }
コード例 #30
0
        public void BekijkSpecifiekePaginaMedewerker(Reservering[] RelevanteReserveringen, TafelArray tafels, string datum) //Laat specifieke reserveringen zien op paginas
        {
            int  huidigePaginaNR = 0;
            bool wrongInput      = false;

            while (true)
            {
                int hoeveelheidPaginas = (int)Math.Ceiling(RelevanteReserveringen.Length / 7.0); //berekent het aantal paginas door het te delen door 7
                Console.Clear();
                Console.WriteLine(ASCIIART.ReserveringenArt());
                Console.WriteLine($"{datum}\nPagina {huidigePaginaNR + 1}/{hoeveelheidPaginas}\n");
                for (int i = 0; i < 7 && i + huidigePaginaNR * 7 < RelevanteReserveringen.Length; i++) //laat de correcte reserveringen zien van een bepaalde tafel
                {
                    Console.WriteLine($"{i + 1}: {RelevanteReserveringen[i + huidigePaginaNR * 7].TijdString()} {RelevanteReserveringen[i + huidigePaginaNR * 7].Bezoeker} ({RelevanteReserveringen[i + huidigePaginaNR * 7].Personen} personen)");
                }
                Console.WriteLine();
                if (huidigePaginaNR + 1 < hoeveelheidPaginas)
                {
                    Console.WriteLine("8: Volgende pagina");
                }
                if (huidigePaginaNR + 1 >= hoeveelheidPaginas && (hoeveelheidPaginas > 1))
                {
                    Console.WriteLine("9: Vorige pagina");
                }
                Console.WriteLine("0: Ga terug naar het startscherm");
                if (wrongInput)
                {
                    Console.WriteLine("Verkeerde input!");
                    wrongInput = false;
                }
                try
                {
                    int Index = Int32.Parse(Console.ReadKey().KeyChar.ToString());
                    if (Index == 0)
                    {
                        return;
                    }
                    if (Index > 0 && Index < 8)
                    {
                        try
                        {
                            BekijkSpecifiekeReserveringMedewerker(RelevanteReserveringen[Index - 1], tafels);
                        }
                        catch (IndexOutOfRangeException)
                        {
                            wrongInput = true;
                        }
                    }
                    else if (Index == 8 && huidigePaginaNR + 1 < hoeveelheidPaginas)
                    {
                        huidigePaginaNR++;
                    }
                    else if (Index == 9 && huidigePaginaNR + 1 >= hoeveelheidPaginas && (hoeveelheidPaginas > 1))
                    {
                        huidigePaginaNR--;
                    }
                    else
                    {
                        Console.WriteLine("Dit is geen geldige input");
                        Console.WriteLine("\x0a" + "Enter: Ga terug naar het vorige scherm");
                        Console.ReadKey();
                    }
                }
                catch (FormatException)
                {
                    wrongInput = true;
                }
            }
        }