98 lines
2.6 KiB
C#
98 lines
2.6 KiB
C#
namespace ordini_ristorante;
|
|
|
|
class Ordine {
|
|
public static int codiceOrdineProgressivo = -1;
|
|
int codiceOrdine;
|
|
DateTime dataOrdine;
|
|
string cliente;
|
|
Piatto[] piatti;
|
|
string stato;
|
|
|
|
public Ordine(int p_codiceOrdine, DateTime p_dataOrdine, string p_cliente, Piatto[] p_piatti, string p_stato) {
|
|
this.codiceOrdine = p_codiceOrdine;
|
|
this.dataOrdine = p_dataOrdine;
|
|
this.cliente = p_cliente;
|
|
this.piatti = p_piatti;
|
|
this.stato = p_stato;
|
|
}
|
|
|
|
public int GetCodiceOrdine() {
|
|
return this.codiceOrdine;
|
|
}
|
|
|
|
public DateTime GetDataOrdine() {
|
|
return this.dataOrdine;
|
|
}
|
|
|
|
public string GetCliente() {
|
|
return this.cliente;
|
|
}
|
|
|
|
public Piatto[] GetPiatti() {
|
|
return this.piatti;
|
|
}
|
|
|
|
public string GetStato() {
|
|
return this.stato;
|
|
}
|
|
|
|
public void SetCodiceOrdine(int p_codiceOrdine) {
|
|
this.codiceOrdine = p_codiceOrdine;
|
|
}
|
|
|
|
public void SetDataOrdine(DateTime p_dataOrdine) {
|
|
this.dataOrdine = p_dataOrdine;
|
|
}
|
|
|
|
public void SetCliente(string p_cliente) {
|
|
this.cliente = p_cliente;
|
|
}
|
|
|
|
public void SetPiatti(Piatto[] p_piatti) {
|
|
this.piatti = p_piatti;
|
|
}
|
|
|
|
public void SetStato(string p_stato) {
|
|
this.stato = p_stato != "in preparazione" || p_stato != "pagato" || p_stato != "annullato"
|
|
? throw new FormatException("Stato non valido")
|
|
: p_stato;
|
|
}
|
|
|
|
public void StampaOrdine() {
|
|
int i = 0;
|
|
Console.WriteLine($"Codice ordine: {this.GetCodiceOrdine()}");
|
|
Console.WriteLine($"Data ordine: {this.GetDataOrdine()}");
|
|
Console.WriteLine($"Cliente a cui l'ordine è intestato: {this.GetCliente()}");
|
|
Console.WriteLine($"Piatti ordinati:");
|
|
foreach (Piatto piatto in this.piatti) {
|
|
Console.WriteLine($"Piatto {i + 1}:");
|
|
piatto.StampaPiatto();
|
|
Console.WriteLine();
|
|
i++;
|
|
}
|
|
Console.WriteLine($"Stato dell'ordine: {this.GetStato()}");
|
|
}
|
|
|
|
public void AggiungiPiatto(Piatto p_nuovoPiatto) {
|
|
Piatto[] piattiNuovo = new Piatto[this.piatti.Length + 1];
|
|
this.piatti.CopyTo(piattiNuovo, 0);
|
|
piattiNuovo[this.piatti.Length + 1] = p_nuovoPiatto;
|
|
this.piatti = piattiNuovo;
|
|
}
|
|
|
|
public float TotaleOrdine() {
|
|
float ritorno = 0;
|
|
foreach (Piatto piatto in piatti) {
|
|
ritorno += piatto.GetPrezzo();
|
|
}
|
|
return ritorno;
|
|
}
|
|
|
|
public int? AnnullaOrdine() {
|
|
return null;
|
|
}
|
|
|
|
public void Pagamento() {
|
|
this.stato = "pagato";
|
|
}
|
|
} |