/// <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"); } } }
/// <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); } }
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; } } } } }
public void BekijkReserveringenKlant(string klantNaam, TafelArray tafels) { if (Reserveringen == null) //als er geen reserveringen zijn nog, maakt een nieuwe reservering aan met 0. { Reserveringen = new Reservering[0]; } if (Reserveringen.Length == 0) //als er 0 reserveringen zijn voor de klant dan returnt de code { Console.Clear(); Console.WriteLine(ASCIIART.ReserverenArt()); Console.WriteLine("U heeft nog geen reserveringen gemaakt\x0a\x0a" + "Enter: Ga terug naar het startscherm"); Console.ReadKey(); return; } int huidigePaginaNR = 0; while (true) { int Aantal = 0; foreach (Reservering reservering in Reserveringen) { if (reservering.Bezoeker == klantNaam) { Aantal++; } } if (Aantal == 0) { return; } Reservering[] KlantReserveringen = new Reservering[Aantal]; int j = 0; for (int i = 0; i < Reserveringen.Length; i++) { if (Reserveringen[i].Bezoeker == klantNaam) { KlantReserveringen[j++] = Reserveringen[i]; } } int hoeveelheidPaginas = (int)Math.Ceiling(KlantReserveringen.Length / 7.0); Console.Clear(); Console.WriteLine(ASCIIART.ReserveringenArt()); Console.WriteLine($"Pagina {huidigePaginaNR + 1}/{hoeveelheidPaginas}\n"); for (int i = 0; i < 7 && i + huidigePaginaNR * 7 < KlantReserveringen.Length; i++) { Console.WriteLine($"{i + 1}: {KlantReserveringen[i + huidigePaginaNR * 7].Datum} om {KlantReserveringen[i + huidigePaginaNR * 7].TijdString()} ({KlantReserveringen[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"); int Index = Int32.Parse(Console.ReadKey().KeyChar.ToString()); Console.Clear(); if (Index == 0) { return; } if (Index < 7 && Index > 0) { changeReservering(KlantReserveringen[Index - 1], tafels); } 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\x0a\x0a" + "Enter: Ga terug naar het vorige scherm"); Console.ReadKey(); } } }
public void changeGerechten(Menu menu) { while (true) { Console.Clear(); Console.WriteLine(TheFatDuckRestaurant.ASCIIART.ReserverenArt()); Console.WriteLine("1: Bekijk het menu\n2: Bekijk uw gekozen gerechten\n\n0: Ga terug naar het vorige scherm"); char Input = Console.ReadKey().KeyChar; switch (Input) { case '1': addGerechten(menu); break; case '2': if (this.Bestelling == null || this.Bestelling.Count == 0) { Console.Clear(); Console.WriteLine(ASCIIART.ReserverenArt()); Console.WriteLine("U heeft nog geen gerechten gekozen\nBekijk het menu om gerechten toe te voegen"); Console.WriteLine("\n\n0: Ga terug naar het vorige scherm"); Console.ReadKey(); } else { int huidigePaginaNR = 0; Console.OutputEncoding = System.Text.Encoding.UTF8; while (true) { int hoeveelheidPaginas = (int)Math.Ceiling(this.Bestelling.Count / 7.0); Console.Clear(); Console.WriteLine(ASCIIART.ReserverenArt()); Console.WriteLine("Dit zijn de huidige gerechten die u heeft besteld\nToets op het getal naast het gerecht om het te verwijderen uit uw reservering\n"); Console.WriteLine($"Pagina {huidigePaginaNR + 1}/{hoeveelheidPaginas}\n"); for (int i = 0; i < 7 && i + huidigePaginaNR * 7 < this.Bestelling.Count; i++) { string totaalprijs = "" + this.Bestelling[i + huidigePaginaNR * 7].TotaalPrijs; totaalprijs += (!totaalprijs.Contains(',') ? ",-" : totaalprijs[totaalprijs.Length - 2] == ',' ? "0" : ""); Console.Out.WriteLine($"{i + 1}: {this.Bestelling[i + huidigePaginaNR * 7].Naam}: {this.Bestelling[i + huidigePaginaNR * 7].Aantal}x, €{totaalprijs}"); } 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 vorige scherm"); int Index = Int32.Parse(Console.ReadKey().KeyChar.ToString()); Console.Clear(); if (Index == 0) { return; } if (Index < 8 && Index > 0) { string tempName = this.Bestelling[Index - 1 + huidigePaginaNR * 7].Naam; Console.Clear(); Console.WriteLine(ASCIIART.ReserverenArt()); Console.WriteLine($"Weet u zeker dat u {tempName} wilt verwijderen?\n\n1: Verwijder het gerecht uit uw reservering\n0: Ga terug naar het vorige scherm"); char userInput = Console.ReadKey().KeyChar; Console.Clear(); switch (userInput) { case '1': this.Bestelling.RemoveAt(Index - 1 + huidigePaginaNR * 7); Console.WriteLine(ASCIIART.ReserverenArt()); Console.WriteLine($"{tempName} is verwijderd uit uw reservering!\n\n0: Ga terug naar het vorige scherm"); Console.ReadKey(); break; } } 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\x0a\x0a" + "Enter: Ga terug naar het vorige scherm"); Console.ReadKey(); } } } break; case '0': return; } } }