ordini_ristorante/Program.cs
La Programmatrice Verde 25c50a4b8d Opzione 3 e 6
2025-05-29 11:00:31 +02:00

174 lines
5.6 KiB
C#

namespace ordini_ristorante;
class Program {
static void Main(string[] args) {
Console.Clear();
Ristorante ristorante = new();
int scelta = -1;
do {
Console.WriteLine("Inserire un'opzione:");
Console.WriteLine("1. Crea piatto");
Console.WriteLine("2. Visualizza menù");
Console.WriteLine("3. Crea ordine");
Console.WriteLine("4. Annulla ordine");
Console.WriteLine("5. Paga ordine");
Console.WriteLine("6. Visualizza ordine");
Console.WriteLine("0. Esci");
Console.Write("Scelta: ");
try {
scelta = Convert.ToInt32(Console.ReadLine());
switch (scelta) {
case 0:
break;
case 1:
ristorante.AggiungiPiatto(CreaPiatto());
Console.WriteLine("Piatto aggiunto con successo");
Pausa();
break;
case 2:
StampaMenu(ristorante);
Pausa();
break;
case 3:
AggiungiOrdine(ristorante);
Console.WriteLine("Ordine aggiunto con successo");
Pausa();
break;
case 4:
Pausa();
break;
case 5:
Pausa();
break;
case 6:
StampaOrdini(ristorante);
Pausa();
break;
default:
Console.WriteLine("Opzione non valida.");
Pausa();
break;
}
}
catch (FormatException) {
Console.WriteLine("Opzione non valida.");
Pausa();
}
}
while (scelta != 0);
}
static void Pausa() {
Console.WriteLine("Premere un tasto per continuare. . .");
Console.ReadKey();
}
static Piatto CreaPiatto() {
string nome;
string descrizione;
float prezzo = -1;
Console.Write("Nome del piatto: ");
nome = Console.ReadLine();
Console.Write("Descrizione del piatto: ");
descrizione = Console.ReadLine();
do {
try {
Console.Write("Inserire il prezzo: ");
prezzo = (float)Convert.ToDouble(Console.ReadLine());
if (prezzo < 0) {
Console.WriteLine("Prezzo non valido.");
Pausa();
}
}
catch (FormatException) {
Console.WriteLine("Prezzo non valido.");
Pausa();
}
}
while (prezzo < 0);
return new Piatto(nome, descrizione, prezzo);
}
static void StampaMenu(Ristorante p_ristorante) {
int i = 0;
foreach (Piatto p in p_ristorante.GetMenu()) {
Console.WriteLine($"Piatto {i + 1}:");
p.StampaPiatto();
Console.WriteLine();
i++;
}
}
static void AggiungiOrdine(Ristorante p_ristorante) {
int codiceOrdine;
//DateTime dataOrdine;
string cliente;
Piatto[] piatti;
int numeroPiatti = -1, scelta = -1;
string stato;
Console.Write("Nome del cliente: ");
cliente = Console.ReadLine();
//Console.Write("Descrizione del piatto: ");
//descrizione = Console.ReadLine();
do {
try {
Console.Write("Quanti piatti ordinare? ");
numeroPiatti = Convert.ToInt32(Console.ReadLine());
if (numeroPiatti < 0) {
Console.WriteLine("Numero di piatti non valido.");
Pausa();
}
}
catch (FormatException) {
Console.WriteLine("Numero di piatti non valido.");
Pausa();
}
}
while (numeroPiatti < 0);
piatti = new Piatto[numeroPiatti];
for (int i = 0; i < numeroPiatti; i++) {
Console.WriteLine($"Scelta del piatto n. {i + 1}\n");
Console.WriteLine("Quale piatto scegliere?");
StampaMenu(p_ristorante);
do {
try {
Console.Write("Scelta: ");
scelta = Convert.ToInt32(Console.ReadLine());
if (scelta <= 0 || scelta > p_ristorante.GetMenu().Length) {
Console.WriteLine("Scelta non valida.");
Pausa();
}
}
catch (FormatException) {
Console.WriteLine("Scelta non valida.");
Pausa();
}
}
while (scelta <= 0 || scelta > p_ristorante.GetMenu().Length);
piatti[i] = p_ristorante.GetMenu()[scelta - 1];
}
codiceOrdine = Ordine.codiceOrdineProgressivo + 1;
Ordine.codiceOrdineProgressivo = codiceOrdine;
p_ristorante.AggiungiOrdine(new Ordine(codiceOrdine, DateTime.Now, cliente, piatti, "in preparazione"));
}
static void StampaOrdini(Ristorante p_ristorante) {
int i = 0;
foreach (Ordine o in p_ristorante.GetOrdini()) {
Console.WriteLine($"Ordine n. {i + 1}:");
o.StampaOrdine();
Console.WriteLine();
i++;
}
}
}