Opzioni 4 e 5
This commit is contained in:
parent
a275e91584
commit
b609104b18
@ -88,11 +88,11 @@ class Ordine {
|
||||
return ritorno;
|
||||
}
|
||||
|
||||
public int? AnnullaOrdine() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void Pagamento() {
|
||||
this.stato = "pagato";
|
||||
}
|
||||
|
||||
public void AnnullaOrdine() {
|
||||
this.stato = "annullato";
|
||||
}
|
||||
}
|
||||
78
Program.cs
78
Program.cs
@ -35,9 +35,13 @@ class Program {
|
||||
Pausa();
|
||||
break;
|
||||
case 4:
|
||||
AnnullaOrdine(ristorante);
|
||||
Console.WriteLine("Ordine annullato con successo.");
|
||||
Pausa();
|
||||
break;
|
||||
case 5:
|
||||
PagaOrdine(ristorante);
|
||||
Console.WriteLine("Ordine pagato con successo");
|
||||
Pausa();
|
||||
break;
|
||||
case 6:
|
||||
@ -154,9 +158,9 @@ class Program {
|
||||
|
||||
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"));
|
||||
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) {
|
||||
@ -168,4 +172,72 @@ class Program {
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
static void AnnullaOrdine(Ristorante p_ristorante) {
|
||||
int scelta = -1;
|
||||
bool exit = true;
|
||||
for (int i = 0; i < p_ristorante.GetOrdini().Length; i++) {
|
||||
Console.WriteLine(p_ristorante.GetOrdini()[i].GetCodiceOrdine());
|
||||
}
|
||||
|
||||
do {
|
||||
try {
|
||||
Console.Write("Inserire il codice identificativo dell'ordine: ");
|
||||
scelta = Convert.ToInt32(Console.ReadLine());
|
||||
if (p_ristorante.GetOrdini()[p_ristorante.GetOrdinePerCodice(scelta)].GetStato() != "in preparazione") {
|
||||
Console.WriteLine("È possibile annullare solo ordini in preparazione.");
|
||||
Console.WriteLine($"Stato corrente dell'ordine selezionato: {p_ristorante.GetOrdini()[p_ristorante.GetOrdinePerCodice(scelta)].GetStato()}");
|
||||
exit = false;
|
||||
Pausa();
|
||||
}
|
||||
else {
|
||||
p_ristorante.GetOrdini()[p_ristorante.GetOrdinePerCodice(scelta)].AnnullaOrdine();
|
||||
exit = true;
|
||||
}
|
||||
}
|
||||
catch (FormatException) {
|
||||
Console.WriteLine("Scelta non valida.");
|
||||
Pausa();
|
||||
}
|
||||
catch (NullReferenceException e) {
|
||||
Console.WriteLine(e.Message);
|
||||
Pausa();
|
||||
}
|
||||
}
|
||||
while (scelta < 0 || scelta > Ordine.codiceOrdineProgressivo || !exit);
|
||||
}
|
||||
|
||||
static void PagaOrdine(Ristorante p_ristorante) {
|
||||
int scelta = -1;
|
||||
bool exit = true;
|
||||
for (int i = 0; i < p_ristorante.GetOrdini().Length; i++) {
|
||||
Console.WriteLine(p_ristorante.GetOrdini()[i].GetCodiceOrdine());
|
||||
}
|
||||
|
||||
do {
|
||||
try {
|
||||
Console.Write("Inserire il codice identificativo dell'ordine: ");
|
||||
scelta = Convert.ToInt32(Console.ReadLine());
|
||||
if (p_ristorante.GetOrdini()[p_ristorante.GetOrdinePerCodice(scelta)].GetStato() != "in preparazione") {
|
||||
Console.WriteLine("È possibile annullare solo ordini in preparazione.");
|
||||
Console.WriteLine($"Stato corrente dell'ordine selezionato: {p_ristorante.GetOrdini()[p_ristorante.GetOrdinePerCodice(scelta)].GetStato()}");
|
||||
exit = false;
|
||||
Pausa();
|
||||
}
|
||||
else {
|
||||
p_ristorante.GetOrdini()[p_ristorante.GetOrdinePerCodice(scelta)].Pagamento();
|
||||
exit = true;
|
||||
}
|
||||
}
|
||||
catch (FormatException) {
|
||||
Console.WriteLine("Scelta non valida.");
|
||||
Pausa();
|
||||
}
|
||||
catch (NullReferenceException e) {
|
||||
Console.WriteLine(e.Message);
|
||||
Pausa();
|
||||
}
|
||||
}
|
||||
while (scelta < 0 || scelta > Ordine.codiceOrdineProgressivo || !exit);
|
||||
}
|
||||
}
|
||||
|
||||
@ -33,11 +33,15 @@ class Ristorante {
|
||||
this.ordini = ordiniNuovo;
|
||||
}
|
||||
|
||||
public Ordine GetOrdinePerCodice(int p_codice) {
|
||||
Ordine? ritorno = null;
|
||||
public int GetOrdinePerCodice(int p_codice) {
|
||||
int? ritorno = null;
|
||||
int i = 0;
|
||||
foreach (Ordine o in this.ordini) {
|
||||
if (o.GetCodiceOrdine() == p_codice) {
|
||||
ritorno = o;
|
||||
ritorno = i;
|
||||
}
|
||||
else {
|
||||
i++;
|
||||
}
|
||||
}
|
||||
return ritorno ?? throw new NullReferenceException("Ordine non trovato.");
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -13,7 +13,7 @@ using System.Reflection;
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("ordini_ristorante")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+25c50a4b8db64c7bfdd25dcd5bd90241e4fd379e")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+a275e915843af2c05a1cebecfa40f24f9324cc74")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("ordini_ristorante")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("ordini_ristorante")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
@ -1 +1 @@
|
||||
82f99463d9b826968c42534a6e053a460cb627c649a33dbc0b18ed1aba9e9c0e
|
||||
b3a63bd86fc6fad1ffe10f51f798240b88be0bc8e79cda50983e1c878f1df28b
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user