Esempio n. 1
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;
                }
            }
        }
Esempio n. 2
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;
                }
            }
        }
Esempio n. 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;
                    }
                }
            }
        }
Esempio n. 4
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;
            }
        }
        /// <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);
                    }
                }
            }
        }
Esempio n. 6
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;
        }
        /// <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]}");
            }
        }
 /// <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");
 }
Esempio n. 9
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);
                    }
                }
            }
        }
        /// <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;
                    }
                }
            }
        }
        /// <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);
                    }
                }
            }
        }
Esempio n. 12
0
        }                    //Lege constructor voor json serialisen

        /// <summary>
        /// Controller functie, vanuit hier kan ieder attribuut van een gerecht aangepast worden
        /// </summary>
        /// <param name="type">String, voorgerecht, hoofdgerecht of nagerecht</param>
        private void ItemAanMaakScherm(string type) //ItemAanMaakScherm is de plek waar alle attributen worden aangepast van een gerecht, voordat deze vanuit de constructor weer wordt toegevoegd. Als het gerecht toch niet hoeft worden toegevoegd dan returnt de code gewoon een gerecht met de basis attributen.
        {
            bool nogNietAllesIngevuldBijOpslaan = false;
            bool wrongInput = false;

            while (true)
            {
                Console.Clear();
                Console.WriteLine(ASCIIART.MenuArt());
                Console.WriteLine($"Voeg een nieuw {type} item toe aan het menu\n\nToets een van de volgende opties in om het item aan te passen, of toe te voegen/annuleren\n");
                Console.WriteLine($"1: Naam \t\t{naam}");
                Console.WriteLine($"2: Prijs \t\t{prijs}");
                Console.WriteLine($"3: Beschrijving \t{beschrijving}");
                Console.WriteLine("4: Ingredienten:");
                if (ingredienten.Count != 0) //als de ingredienten list meer dan 0 strings bezit, worden ze getoont.
                {
                    for (int i = 0; i < ingredienten.Count; i++)
                    {
                        Console.WriteLine($"- {ingredienten[i]}");
                    }
                    Console.WriteLine();
                }
                else
                {
                    Console.WriteLine("\t\t\tVoer de ingredienten in\n");
                }
                Console.WriteLine("5: Voeg het item toe aan het menu");
                Console.WriteLine("0: Annuleer en ga terug");
                if (nogNietAllesIngevuldBijOpslaan)
                {
                    Console.WriteLine("\nERROR: Vul eerst alle velden in voordat u het item opslaat!");
                    nogNietAllesIngevuldBijOpslaan = false;
                }
                if (wrongInput)
                {
                    Console.WriteLine("Verkeerde input! Probeer 1, 2, 3, 4, 5 of 6");
                }
                char userInput = Console.ReadKey().KeyChar;
                switch (userInput)
                {
                case '0':
                    if (ConfirmatieAnnuleren())
                    {
                        return;
                    }
                    break;

                case '1':
                    VeranderGerechtNaam();
                    break;

                case '2':
                    VeranderGerechtPrijs();
                    break;

                case '3':
                    VeranderGerechtBeschrijving();
                    break;

                case '4':
                    VeranderGerechtIngredienten();
                    break;

                case '5':
                    if (CheckOfAlDeAttributenZijnIngevuld())
                    {
                        nogNietAllesIngevuldBijOpslaan = false;
                    }
                    else
                    {
                        nogNietAllesIngevuldBijOpslaan = true;
                        break;
                    }
                    ConfirmatieToevoegen();
                    return;
                }
            }
        }