agenzia_viaggi/Cliente.cs
2025-05-07 21:36:33 +02:00

111 lines
3.3 KiB
C#

using System.ComponentModel;
namespace agenzia_viaggi;
class Cliente {
string nome;
string cognome;
string codiceFiscale;
string eta;
Prenotazione[] prenotazioni;
public Cliente(string p_nome, string p_cognome, string p_codiceFiscale, string p_eta, int p_prenotazioni) {
this.nome = p_nome;
this.cognome = p_cognome;
this.eta = p_eta;
this.prenotazioni = new Prenotazione[p_prenotazioni];
this.codiceFiscale = p_codiceFiscale;
}
public string GetNome() {
return this.nome;
}
public string GetCognome() {
return this.cognome;
}
public string GetCodiceFiscale() {
return this.codiceFiscale;
}
public string GetEta() {
return this.eta;
}
public Prenotazione[] GetPrenotazioni() {
return this.prenotazioni;
}
public void SetNome(string p_nome) {
this.nome = p_nome;
}
public void SetCognome(string p_cognome) {
this.cognome = p_cognome;
}
public void SetEta(string p_eta) {
this.eta = p_eta;
}
public void SetCodiceFiscale(string p_codiceFiscale) {
this.codiceFiscale = p_codiceFiscale;
}
public void SetPrenotazioni(Prenotazione[] p_prenotazioni) {
this.prenotazioni = p_prenotazioni;
}
public void InserisciPrenotazione(string p_periodo, string p_giorniPrenotati, string p_numeroPersone) {
bool isPrenotazioneEsistente = true;
int i;
//trova la prima cella disponibile
for (i = 0; i < this.prenotazioni.Length && isPrenotazioneEsistente; i++) {
if (this.prenotazioni[i] == null) {
isPrenotazioneEsistente = false;
i--;
}
}
this.prenotazioni[i] = isPrenotazioneEsistente ? throw new Exception("Errore: sono già state inserite tutte le prenotazioni per questo cliente") : new Prenotazione(p_periodo, p_giorniPrenotati, p_numeroPersone, this.GetCodiceFiscale());
}
public void CancellaPrenotazione(string p_UUID) {
string[] UUIDs = new string[this.prenotazioni.Length];
bool exit = false;
int j;
for (int i = 0; i < this.prenotazioni.Length; i++) {
if (this.prenotazioni[i] != null) {
UUIDs[i] = this.prenotazioni[i].GetUUID();
}
}
//trovo a quale prenotazione corrisponde l'UUID selezionato
for (j = 0; j < this.prenotazioni.Length && !exit; j++) {
if (UUIDs[j] == p_UUID) {
exit = true;
j--;
}
}
this.prenotazioni[j] = null;
}
public void StampaDatiCliente() {
Console.WriteLine($"Nome: {this.GetNome()}");
Console.WriteLine($"Cognome: {this.GetCognome()}");
Console.WriteLine($"Età: {this.GetEta()}");
Console.WriteLine($"Codice fiscale: {this.GetCodiceFiscale()}");
Console.WriteLine($"Numero prenotazioni: {this.prenotazioni.Length}\n");
}
public void StampaPrenotazioni() {
for (int i = 0; i < this.prenotazioni.Length; i++) {
if (this.prenotazioni[i] != null) {
Console.WriteLine($"Prenotazione n. {i + 1}:");
this.prenotazioni[i].StampaDatiPrenotazione();
Console.WriteLine();
}
}
}
}