diff --git a/Cliente.cs b/Cliente.cs index 778adfc..e16a606 100644 --- a/Cliente.cs +++ b/Cliente.cs @@ -1,5 +1,116 @@ +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, Prenotazione[] p_prenotazioni) { + this.nome = p_nome; + this.cognome = p_cognome; + this.eta = p_eta; + this.prenotazioni = p_prenotazioni; + this.codiceFiscale = CheckCodiceFiscale(p_codiceFiscale) ? p_codiceFiscale : throw new Exception("Codice fiscale non valido"); + } + + private bool CheckCodiceFiscale(string p_codiceFiscale) { + bool ritorno; + //controllo sulla validità del codice fiscale + return ritorno; + } + + 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; + if (this.prenotazioni.Length > 10) { + throw new Exception("Errore: sono consentite solo 10 prenotazioni per cliente"); + } + else { + //trova la prima cella disponibile + for (i = 0; i < this.prenotazioni.Length && isPrenotazioneEsistente; i++) { + if (this.prenotazioni[i] == null) { + isPrenotazioneEsistente = false; + } + } + this.prenotazioni[i] = 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()}"); + } + + 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(); + } + } + } } \ No newline at end of file diff --git a/Prenotazione.cs b/Prenotazione.cs index ccf1202..eeac546 100644 --- a/Prenotazione.cs +++ b/Prenotazione.cs @@ -8,11 +8,11 @@ class Prenotazione { string numeroPersone; string codiceFiscalePrenotante; - public Prenotazione(string p_UUID, string p_periodo, string p_giorniPrenotati, string p_costo, string p_numeroPersone, string p_codiceFiscalePrenotante) { - this.UUID = p_UUID; + public Prenotazione(string p_periodo, string p_giorniPrenotati, string p_numeroPersone, string p_codiceFiscalePrenotante) { + this.UUID = this.SetUUID(); this.periodo = p_periodo; this.giorniPrenotati = p_giorniPrenotati; - this.costo = p_costo; + this.costo = this.SetCosto(); this.numeroPersone = p_numeroPersone; this.codiceFiscalePrenotante = p_codiceFiscalePrenotante; } @@ -43,6 +43,7 @@ class Prenotazione { public void SetUUID(string p_UUID) { this.UUID = p_UUID; + //è un calcolo particolare, va fatto meglio } public void SetPeriodo(string p_periodo) { @@ -55,6 +56,7 @@ class Prenotazione { public void SetCosto(string p_costo) { this.costo = p_costo; + //è un calcolo particolare, va fatto meglio } public void SetNumeroPersone(string p_numeroPersone) { diff --git a/obj/Debug/net9.0/agenzia_viaggi.AssemblyInfo.cs b/obj/Debug/net9.0/agenzia_viaggi.AssemblyInfo.cs index 20b538b..ff2eea8 100644 --- a/obj/Debug/net9.0/agenzia_viaggi.AssemblyInfo.cs +++ b/obj/Debug/net9.0/agenzia_viaggi.AssemblyInfo.cs @@ -13,7 +13,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("agenzia_viaggi")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+ea93404bdc7d270cc0a9459ea771a863f6ab1930")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+8e5f3e33fbcd48695682ec39aee4bd41978d057c")] [assembly: System.Reflection.AssemblyProductAttribute("agenzia_viaggi")] [assembly: System.Reflection.AssemblyTitleAttribute("agenzia_viaggi")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/obj/Debug/net9.0/agenzia_viaggi.AssemblyInfoInputs.cache b/obj/Debug/net9.0/agenzia_viaggi.AssemblyInfoInputs.cache index ce6632f..11eedec 100644 --- a/obj/Debug/net9.0/agenzia_viaggi.AssemblyInfoInputs.cache +++ b/obj/Debug/net9.0/agenzia_viaggi.AssemblyInfoInputs.cache @@ -1 +1 @@ -990d92297fa546ed4818085ae57abd019d21acfaccc0fa93ed345e73090af2db +f8f6f674141003bac93fe918afe7713f0e7b7f4d36c5021a8ac1373fecaeff14