108 lines
3.2 KiB
C#
108 lines
3.2 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++) {
|
|
UUIDs[i] = this.prenotazioni[i].GetUUID();
|
|
}
|
|
//verifico che lo UUID esista
|
|
for (j = 0; j < this.prenotazioni.Length && !exit; j++) {
|
|
if (UUIDs[j] == p_UUID) {
|
|
exit = true;
|
|
}
|
|
}
|
|
|
|
this.prenotazioni[j] = exit ? null : throw new Exception("Codice prenotazione non trovato");
|
|
}
|
|
|
|
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}");
|
|
}
|
|
|
|
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();
|
|
}
|
|
}
|
|
}
|
|
} |