diff --git a/Program.cs b/Program.cs index 8fe4de4..49dc966 100644 --- a/Program.cs +++ b/Program.cs @@ -4,34 +4,47 @@ namespace agenzia_viaggi; class Program { static void Main(string[] args) { - int scelta = 0; + Console.Clear(); + int scelta = 3; + bool eccezione; do { Console.WriteLine("Scegliere un'opzione:"); Console.WriteLine("1. Demo"); Console.WriteLine("2. Esecuzione standard"); + Console.WriteLine("0. Esci"); Console.Write("Scelta: "); + + eccezione = false; + try { scelta = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Opzione non valida"); + eccezione = true; Pausa(); } - switch (scelta) { - case 1: - Demo(); - break; - case 2: - Menu(); - break; - default: - Console.WriteLine("Opzione non valida"); - Pausa(); - break; + if (!eccezione) { + switch (scelta) { + case 0: + break; + case 1: + Console.Clear(); + Demo(); + break; + case 2: + Console.Clear(); + Menu(); + break; + default: + Console.WriteLine("Opzione non valida"); + Pausa(); + break; + } } } - while (scelta != 0); + while (eccezione || scelta < 0 || scelta > 2); } static void Pausa() { @@ -54,25 +67,32 @@ class Program { static void Menu() { int numeroClienti = 0, scelta = 0, input = 0; + bool eccezione; do { Console.Write("Quanti clienti considerare? "); + + eccezione = false; try { numeroClienti = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Numero non valido"); + eccezione = true; Pausa(); } - if (numeroClienti <= 0) { - Console.WriteLine("Errore: non è possibile considerare meno di un cliente."); - Pausa(); + if (!eccezione) { + if (numeroClienti <= 0) { + Console.WriteLine("Errore: non è possibile considerare meno di un cliente."); + Pausa(); + } } } - while (numeroClienti <= 0); + while (eccezione || numeroClienti <= 0); Cliente[] clienti = new Cliente[numeroClienti]; - do { + + do { Console.WriteLine("Scegliere un'opzione:"); Console.WriteLine("1. Inserire i dati dei clienti"); Console.WriteLine("2. Inserire una prenotazione"); @@ -81,135 +101,249 @@ class Program { Console.WriteLine("5. Mostra tutte le prenotazioni"); Console.WriteLine("0. Esci"); Console.Write("Scelta: "); + + eccezione = false; + try { scelta = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Opzione non valida"); + eccezione = true; Pausa(); } - switch (scelta) { - case 0: - break; - case 1: - do { - Console.WriteLine("Inserire i dati di quale cliente? "); + + if (!eccezione) { + switch (scelta) { + case 0: + break; + case 1: + do { + Console.WriteLine("Inserire i dati di quale cliente? "); + for (int i = 0; i < clienti.Length; i++) { + Console.WriteLine(i + 1); + } + Console.Write("Scelta: "); + + eccezione = false; + + try { + input = Convert.ToInt32(Console.ReadLine()); + } + catch (FormatException) { + Console.WriteLine("Opzione non valida"); + eccezione = true; + Pausa(); + } + if (!eccezione) { + if (input <= 0 || input > numeroClienti) { + Console.WriteLine("Opzione non valida"); + Pausa(); + } + else if (clienti[input - 1] != null) { + Console.WriteLine("Errore: i dati di questo cliente sono già stati inseriti."); + Pausa(); + } + } + } + while (eccezione || input <= 0 || input > numeroClienti || clienti[input - 1] != null); + + clienti[input - 1] = CreaCliente(); + Console.WriteLine("Cliente inserito con successo"); + + Pausa(); + break; + case 2: + string[] periodi = ["primavera", "estate", "autunno", "inverno"]; + int giorniPrenotati = 0, numeroPersone = 0; + do { + Console.WriteLine("Inserire la prenotazione di quale cliente? "); + for (int i = 0; i < clienti.Length; i++) { + Console.WriteLine(i + 1); + } + Console.Write("Scelta: "); + + eccezione = false; + + try { + input = Convert.ToInt32(Console.ReadLine()); + } + catch (FormatException) { + Console.WriteLine("Opzione non valida"); + eccezione = true; + Pausa(); + } + if (!eccezione) { + if (input <= 0 || input > numeroClienti) { + Console.WriteLine("Opzione non valida"); + Pausa(); + } + } + } + while (eccezione || input <= 0 || input > numeroClienti); + + scelta = 5; + do { + Console.WriteLine("Quale periodo dell'anno scegliere?"); + Console.WriteLine("1. Primavera"); + Console.WriteLine("2. Estate"); + Console.WriteLine("3. Autunno"); + Console.WriteLine("4. Inverno"); + Console.Write("Scelta: "); + + eccezione = false; + + try { + scelta = Convert.ToInt32(Console.ReadLine()); + } + catch (FormatException) { + Console.WriteLine("Opzione non valida"); + eccezione = true; + Pausa(); + } + if (!eccezione) { + if (scelta < 1 || scelta > 4) { + Console.WriteLine("Opzione non valida"); + Pausa(); + } + } + } while (eccezione || scelta < 1 || scelta > 4); + + do { + Console.Write("Per quanti giorni prenotare? "); + + eccezione = false; + + try { + giorniPrenotati = Convert.ToInt32(Console.ReadLine()); + } + catch (FormatException) { + Console.WriteLine("Numero non valido"); + eccezione = true; + Pausa(); + } + if (!eccezione) { + if (giorniPrenotati <= 0) { + Console.WriteLine("Errore: impossibile prenotare per meno di un giorno."); + Pausa(); + } + } + } + while (eccezione || giorniPrenotati <= 0); + + do { + Console.Write("Per quante persone prenotare? "); + + eccezione = false; + + try { + numeroPersone = Convert.ToInt32(Console.ReadLine()); + } + catch (FormatException) { + Console.WriteLine("Numero non valido"); + eccezione = true; + Pausa(); + } + if (!eccezione) { + if (numeroPersone <= 0) { + Console.WriteLine("Errore: impossibile prenotare per meno di una persona."); + Pausa(); + } + } + } + while (numeroPersone <= 0); + + clienti[input - 1].InserisciPrenotazione(periodi[scelta], Convert.ToString(giorniPrenotati), Convert.ToString(numeroPersone)); + + Console.WriteLine("Prenotazione inserita correttamente."); + + Pausa(); + break; + case 3: + for (int i = 0; i < numeroClienti; i++) { + clienti[i].StampaDatiCliente(); + clienti[i].StampaPrenotazioni(); + } + Pausa(); + break; + case 4: + do { + Console.WriteLine("Cancellare la prenotazione di quale cliente? "); + + eccezione = false; + + try { + input = Convert.ToInt32(Console.ReadLine()); + } + catch (FormatException) { + Console.WriteLine("Opzione non valida"); + eccezione = true; + Pausa(); + } + if (!eccezione) { + if (input <= 0 || input > numeroClienti) { + Console.WriteLine("Opzione non valida"); + Pausa(); + } + } + } + while (eccezione || input <= 0 || input > numeroClienti); + + do { + Console.WriteLine("Scegliere una prenotazione:"); + for (int i = 0; i < clienti[input].GetPrenotazioni().Length; i++) { + Console.WriteLine($"{i + 1}. {clienti[input].GetPrenotazioni()[i].GetUUID()}"); + } + Console.Write("Scelta: "); + + eccezione = false; + + try { + scelta = Convert.ToInt32(Console.ReadLine()); + } + catch (FormatException) { + Console.WriteLine("Opzione non valida"); + eccezione = true; + Pausa(); + } + if (!eccezione) { + if (scelta < 1 || scelta > clienti[input].GetPrenotazioni().Length) { + Console.WriteLine("Opzione non valida"); + Pausa(); + } + } + } while (eccezione || scelta < 1 || scelta > clienti[input].GetPrenotazioni().Length); + + try { - input = Convert.ToInt32(Console.ReadLine()); + clienti[input].CancellaPrenotazione(clienti[input].GetPrenotazioni()[scelta - 1].GetUUID()); } - catch (FormatException) { - Console.WriteLine("Opzione non valida"); - Pausa(); + catch (Exception e) { + Console.WriteLine(e.Message); } - if (input <= 0 || input > numeroClienti) { - Console.WriteLine("Opzione non valida"); - Pausa(); + Pausa(); + break; + case 5: + for (int i = 0; i < clienti.Length; i++) { + clienti[i].StampaPrenotazioni(); } - } - while (input <= 0 || input > numeroClienti); - - clienti[input] = CreaCliente(); - - Pausa(); - break; - case 2: - string[] periodi = ["primavera", "estate", "autunno", "inverno"]; - int giorniPrenotati = 0, numeroPersone = 0; - do { - Console.WriteLine("Inserire la prenotazione di quale cliente? "); - try { - input = Convert.ToInt32(Console.ReadLine()); - } - catch (FormatException) { - Console.WriteLine("Opzione non valida"); - Pausa(); - } - if (input <= 0 || input > numeroClienti) { - Console.WriteLine("Opzione non valida"); - Pausa(); - } - } - while (input <= 0 || input > numeroClienti); - - do { - Console.WriteLine("Quale periodo dell'anno scegliere?"); - Console.WriteLine("1. Primavera"); - Console.WriteLine("2. Estate"); - Console.WriteLine("3. Autunno"); - Console.WriteLine("4. Inverno"); - Console.Write("Scelta: "); - try { - scelta = Convert.ToInt32(Console.ReadLine()); - } - catch (FormatException) { - Console.WriteLine("Opzione non valida"); - Pausa(); - } - if (scelta < 1 || scelta > 4) { - - } - } while (scelta < 1 || scelta > 4); - - do { - Console.Write("Per quanti giorni prenotare?"); - try { - giorniPrenotati = Convert.ToInt32(Console.ReadLine()); - } - catch (FormatException) { - Console.WriteLine("Numero non valido"); - } - if (giorniPrenotati <= 0) { - Console.WriteLine("Errore: impossibile prenotare per meno di un giorno."); - Pausa(); - } - } - while (giorniPrenotati <= 0); - - do { - Console.Write("Per quante persone prenotare?"); - try { - numeroPersone = Convert.ToInt32(Console.ReadLine()); - } - catch (FormatException) { - Console.WriteLine("Numero non valido"); - } - if (numeroPersone <= 0) { - Console.WriteLine("Errore: impossibile prenotare per meno di una persona."); - Pausa(); - } - } - while (numeroPersone <= 0); - - clienti[input].InserisciPrenotazione(periodi[scelta], Convert.ToString(giorniPrenotati), Convert.ToString(numeroPersone)); - - Pausa(); - break; - case 3: - for (int i = 0; i < numeroClienti; i++) { - clienti[i].StampaDatiCliente(); - clienti[i].StampaPrenotazioni(); - } - Pausa(); - break; - case 4: - Pausa(); - break; - case 5: - Pausa(); - break; - default: - Console.WriteLine("Opzione non valida"); - Pausa(); - break; + Pausa(); + break; + default: + Console.WriteLine("Opzione non valida"); + Pausa(); + break; + } } } - while (scelta != 0); + while (eccezione || scelta != 0); } static Cliente CreaCliente() { string nome, cognome, codiceFiscale; int eta = 0, prenotazioni = 0; const int MAX_PRENOTAZIONI = 10; + bool eccezione; do { Console.Write("Inserire il nome: "); @@ -243,39 +377,51 @@ class Program { do { Console.Write("Inserire l'età: "); + + eccezione = false; + try { eta = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Età non valida"); + eccezione = true; Pausa(); } - if (eta <= 0) { - Console.WriteLine("Errore: non è possibile inserire un'età inferiore a 1"); - Pausa(); + if (!eccezione) { + if (eta <= 0) { + Console.WriteLine("Errore: non è possibile inserire un'età inferiore a 1"); + Pausa(); + } } } - while (eta <= 0); + while (eccezione || eta <= 0); do { Console.Write("Inserire il numero di prenotazioni: "); + + eccezione = false; + try { prenotazioni = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { - Console.WriteLine("Età non valida"); + Console.WriteLine("Numero non valido"); + eccezione = true; Pausa(); } - if (prenotazioni <= 0) { - Console.WriteLine("Errore: non è possibile inserire un numero di prenotazioni inferiore a 1"); - Pausa(); - } - else if (prenotazioni > MAX_PRENOTAZIONI) { - Console.WriteLine($"Errore: sono consentite al massimo {MAX_PRENOTAZIONI} prenotazioni per cliente"); - Pausa(); + if (!eccezione) { + if (prenotazioni <= 0) { + Console.WriteLine("Errore: non è possibile inserire un numero di prenotazioni inferiore a 1"); + Pausa(); + } + else if (prenotazioni > MAX_PRENOTAZIONI) { + Console.WriteLine($"Errore: sono consentite al massimo {MAX_PRENOTAZIONI} prenotazioni per cliente"); + Pausa(); + } } } - while (prenotazioni <= 0 && prenotazioni > MAX_PRENOTAZIONI); + while (eccezione || prenotazioni <= 0 || prenotazioni > MAX_PRENOTAZIONI); return new Cliente(nome, cognome, codiceFiscale, Convert.ToString(eta), prenotazioni); diff --git a/bin/Debug/net9.0/agenzia_viaggi b/bin/Debug/net9.0/agenzia_viaggi new file mode 100755 index 0000000..601993e Binary files /dev/null and b/bin/Debug/net9.0/agenzia_viaggi differ diff --git a/bin/Debug/net9.0/agenzia_viaggi.deps.json b/bin/Debug/net9.0/agenzia_viaggi.deps.json new file mode 100644 index 0000000..9cf1fe0 --- /dev/null +++ b/bin/Debug/net9.0/agenzia_viaggi.deps.json @@ -0,0 +1,23 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v9.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v9.0": { + "agenzia_viaggi/1.0.0": { + "runtime": { + "agenzia_viaggi.dll": {} + } + } + } + }, + "libraries": { + "agenzia_viaggi/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/bin/Debug/net9.0/agenzia_viaggi.dll b/bin/Debug/net9.0/agenzia_viaggi.dll new file mode 100644 index 0000000..1c90702 Binary files /dev/null and b/bin/Debug/net9.0/agenzia_viaggi.dll differ diff --git a/bin/Debug/net9.0/agenzia_viaggi.pdb b/bin/Debug/net9.0/agenzia_viaggi.pdb new file mode 100644 index 0000000..6aeda3f Binary files /dev/null and b/bin/Debug/net9.0/agenzia_viaggi.pdb differ diff --git a/bin/Debug/net9.0/agenzia_viaggi.runtimeconfig.json b/bin/Debug/net9.0/agenzia_viaggi.runtimeconfig.json new file mode 100644 index 0000000..b19c3c8 --- /dev/null +++ b/bin/Debug/net9.0/agenzia_viaggi.runtimeconfig.json @@ -0,0 +1,12 @@ +{ + "runtimeOptions": { + "tfm": "net9.0", + "framework": { + "name": "Microsoft.NETCore.App", + "version": "9.0.0" + }, + "configProperties": { + "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false + } + } +} \ No newline at end of file diff --git a/obj/Debug/net9.0/agenzia_viaggi.AssemblyInfo.cs b/obj/Debug/net9.0/agenzia_viaggi.AssemblyInfo.cs index ff2eea8..59fe3bb 100644 --- a/obj/Debug/net9.0/agenzia_viaggi.AssemblyInfo.cs +++ b/obj/Debug/net9.0/agenzia_viaggi.AssemblyInfo.cs @@ -13,10 +13,10 @@ 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+8e5f3e33fbcd48695682ec39aee4bd41978d057c")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+f9184fea2c9646a9d311a20814a0ffb94d3afd4a")] [assembly: System.Reflection.AssemblyProductAttribute("agenzia_viaggi")] [assembly: System.Reflection.AssemblyTitleAttribute("agenzia_viaggi")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] -// Generated by the MSBuild WriteCodeFragment class. +// Generato dalla classe WriteCodeFragment di MSBuild. diff --git a/obj/Debug/net9.0/agenzia_viaggi.AssemblyInfoInputs.cache b/obj/Debug/net9.0/agenzia_viaggi.AssemblyInfoInputs.cache index 11eedec..8dc54e3 100644 --- a/obj/Debug/net9.0/agenzia_viaggi.AssemblyInfoInputs.cache +++ b/obj/Debug/net9.0/agenzia_viaggi.AssemblyInfoInputs.cache @@ -1 +1 @@ -f8f6f674141003bac93fe918afe7713f0e7b7f4d36c5021a8ac1373fecaeff14 +1bc455adbb990f51be8b7d12aa7c0f4dcc419f5750faa87eb217db2284f5c44c diff --git a/obj/Debug/net9.0/agenzia_viaggi.csproj.CoreCompileInputs.cache b/obj/Debug/net9.0/agenzia_viaggi.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..d1890cd --- /dev/null +++ b/obj/Debug/net9.0/agenzia_viaggi.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +272511a537020fef9d5058812d4bcfb6bb307ad5010489099043c9b34fa5a981 diff --git a/obj/Debug/net9.0/agenzia_viaggi.csproj.FileListAbsolute.txt b/obj/Debug/net9.0/agenzia_viaggi.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..538b2ab --- /dev/null +++ b/obj/Debug/net9.0/agenzia_viaggi.csproj.FileListAbsolute.txt @@ -0,0 +1,14 @@ +/home/Verde/git/agenzia_viaggi/bin/Debug/net9.0/agenzia_viaggi +/home/Verde/git/agenzia_viaggi/bin/Debug/net9.0/agenzia_viaggi.deps.json +/home/Verde/git/agenzia_viaggi/bin/Debug/net9.0/agenzia_viaggi.runtimeconfig.json +/home/Verde/git/agenzia_viaggi/bin/Debug/net9.0/agenzia_viaggi.dll +/home/Verde/git/agenzia_viaggi/bin/Debug/net9.0/agenzia_viaggi.pdb +/home/Verde/git/agenzia_viaggi/obj/Debug/net9.0/agenzia_viaggi.GeneratedMSBuildEditorConfig.editorconfig +/home/Verde/git/agenzia_viaggi/obj/Debug/net9.0/agenzia_viaggi.AssemblyInfoInputs.cache +/home/Verde/git/agenzia_viaggi/obj/Debug/net9.0/agenzia_viaggi.AssemblyInfo.cs +/home/Verde/git/agenzia_viaggi/obj/Debug/net9.0/agenzia_viaggi.csproj.CoreCompileInputs.cache +/home/Verde/git/agenzia_viaggi/obj/Debug/net9.0/agenzia_viaggi.dll +/home/Verde/git/agenzia_viaggi/obj/Debug/net9.0/refint/agenzia_viaggi.dll +/home/Verde/git/agenzia_viaggi/obj/Debug/net9.0/agenzia_viaggi.pdb +/home/Verde/git/agenzia_viaggi/obj/Debug/net9.0/agenzia_viaggi.genruntimeconfig.cache +/home/Verde/git/agenzia_viaggi/obj/Debug/net9.0/ref/agenzia_viaggi.dll diff --git a/obj/Debug/net9.0/agenzia_viaggi.dll b/obj/Debug/net9.0/agenzia_viaggi.dll new file mode 100644 index 0000000..1c90702 Binary files /dev/null and b/obj/Debug/net9.0/agenzia_viaggi.dll differ diff --git a/obj/Debug/net9.0/agenzia_viaggi.genruntimeconfig.cache b/obj/Debug/net9.0/agenzia_viaggi.genruntimeconfig.cache new file mode 100644 index 0000000..570bd8a --- /dev/null +++ b/obj/Debug/net9.0/agenzia_viaggi.genruntimeconfig.cache @@ -0,0 +1 @@ +106d84dc00dd80da38f44a5ee46bdbd9b6bee51edd940c49f882de68d9ebdfc6 diff --git a/obj/Debug/net9.0/agenzia_viaggi.pdb b/obj/Debug/net9.0/agenzia_viaggi.pdb new file mode 100644 index 0000000..6aeda3f Binary files /dev/null and b/obj/Debug/net9.0/agenzia_viaggi.pdb differ diff --git a/obj/Debug/net9.0/apphost b/obj/Debug/net9.0/apphost new file mode 100755 index 0000000..601993e Binary files /dev/null and b/obj/Debug/net9.0/apphost differ diff --git a/obj/Debug/net9.0/ref/agenzia_viaggi.dll b/obj/Debug/net9.0/ref/agenzia_viaggi.dll new file mode 100644 index 0000000..00713e4 Binary files /dev/null and b/obj/Debug/net9.0/ref/agenzia_viaggi.dll differ diff --git a/obj/Debug/net9.0/refint/agenzia_viaggi.dll b/obj/Debug/net9.0/refint/agenzia_viaggi.dll new file mode 100644 index 0000000..00713e4 Binary files /dev/null and b/obj/Debug/net9.0/refint/agenzia_viaggi.dll differ