diff --git a/Program.cs b/Program.cs index 13f5a7f..5d2ce86 100644 --- a/Program.cs +++ b/Program.cs @@ -54,15 +54,665 @@ class Program { static void Demo() { Cliente[] clienti = new Cliente[2]; - Console.Write("Quanti clienti considerare? 2"); - Console.WriteLine("Scegliere un'opzione:"); - Console.WriteLine("1. Inserire i dati dei clienti"); - Console.WriteLine("2. Inserire una prenotazione"); - Console.WriteLine("3. Mostra informazioni cliente"); - Console.WriteLine("4. Cancella prenotazione"); - Console.WriteLine("5. Mostra tutte le prenotazioni"); - Console.WriteLine("0. Esci"); - Console.Write("Scelta: "); + string nome, cognome, codiceFiscale; + int eta = 0; + bool eccezione; + + //inserimento cliente1 + { + Console.Write("Quanti clienti considerare? 2"); + Console.WriteLine("Scegliere un'opzione:"); + Console.WriteLine("1. Inserire i dati dei clienti"); + Console.WriteLine("2. Inserire una prenotazione"); + Console.WriteLine("3. Mostra informazioni cliente"); + Console.WriteLine("4. Cancella prenotazione"); + Console.WriteLine("5. Mostra tutte le prenotazioni"); + Console.WriteLine("0. Esci"); + Console.WriteLine("Scelta: 1"); + Console.WriteLine("Inserire i dati di quale cliente? "); + Console.WriteLine("1"); + Console.WriteLine("2"); + Console.WriteLine("Scelta: 1"); + do { + Console.Write("Inserire il nome: "); + nome = Console.ReadLine(); + if (string.IsNullOrWhiteSpace(nome)) { + Console.WriteLine("Errore: inserire un nome"); + Pausa(); + } + } + while (string.IsNullOrWhiteSpace(nome)); + + do { + Console.Write("Inserire il cognome: "); + cognome = Console.ReadLine(); + if (string.IsNullOrWhiteSpace(cognome)) { + Console.WriteLine("Errore: inserire un cognome"); + Pausa(); + } + } + while (string.IsNullOrWhiteSpace(cognome)); + + do { + Console.Write("Inserire il codice fiscale: "); + codiceFiscale = Console.ReadLine(); + if (string.IsNullOrWhiteSpace(codiceFiscale)) { + Console.WriteLine("Errore: inserire un codice fiscale"); + Pausa(); + } + } + while (string.IsNullOrWhiteSpace(codiceFiscale)); + + 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 (!eccezione) { + if (eta <= 0) { + Console.WriteLine("Errore: non è possibile inserire un'età inferiore a 1"); + Pausa(); + } + } + } + while (eccezione || eta <= 0); + + Console.Write("Inserire il numero di prenotazioni: 2"); + + clienti[0] = new Cliente(nome, cognome, codiceFiscale, Convert.ToString(eta), 2); + } + //inserimento prenotazione 1 cliente1 + { + string[] periodi = ["primavera", "estate", "autunno", "inverno"]; + int giorniPrenotati = 0, numeroPersone = 0, scelta; + + Console.WriteLine("Scegliere un'opzione:"); + Console.WriteLine("1. Inserire i dati dei clienti"); + Console.WriteLine("2. Inserire una prenotazione"); + Console.WriteLine("3. Mostra informazioni cliente"); + Console.WriteLine("4. Cancella prenotazione"); + Console.WriteLine("5. Mostra tutte le prenotazioni"); + Console.WriteLine("0. Esci"); + Console.WriteLine("Scelta: 2"); + Console.WriteLine("Inserire la prenotazione di quale cliente? "); + Console.WriteLine("1"); + Console.WriteLine("2"); + Console.WriteLine("Scelta: 1"); + + 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); + + eccezione = false; + + try { + clienti[0].InserisciPrenotazione(periodi[scelta - 1], Convert.ToString(giorniPrenotati), Convert.ToString(numeroPersone)); + } + catch (Exception e) { + Console.WriteLine(e.Message); + eccezione = true; + } + if (!eccezione) { + Console.WriteLine("Prenotazione inserita correttamente."); + } + Pausa(); + } + //inserimento prenotazione 2 cliente1 + { + string[] periodi = ["primavera", "estate", "autunno", "inverno"]; + int giorniPrenotati = 0, numeroPersone = 0, scelta; + + Console.WriteLine("Scegliere un'opzione:"); + Console.WriteLine("1. Inserire i dati dei clienti"); + Console.WriteLine("2. Inserire una prenotazione"); + Console.WriteLine("3. Mostra informazioni cliente"); + Console.WriteLine("4. Cancella prenotazione"); + Console.WriteLine("5. Mostra tutte le prenotazioni"); + Console.WriteLine("0. Esci"); + Console.WriteLine("Scelta: 2"); + Console.WriteLine("Inserire la prenotazione di quale cliente? "); + Console.WriteLine("1"); + Console.WriteLine("2"); + Console.WriteLine("Scelta: 1"); + + 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); + + eccezione = false; + + try { + clienti[0].InserisciPrenotazione(periodi[scelta - 1], Convert.ToString(giorniPrenotati), Convert.ToString(numeroPersone)); + } + catch (Exception e) { + Console.WriteLine(e.Message); + eccezione = true; + } + if (!eccezione) { + Console.WriteLine("Prenotazione inserita correttamente."); + } + Pausa(); + } + //inserimento cliente2 + { + Console.WriteLine("Scegliere un'opzione:"); + Console.WriteLine("1. Inserire i dati dei clienti"); + Console.WriteLine("2. Inserire una prenotazione"); + Console.WriteLine("3. Mostra informazioni cliente"); + Console.WriteLine("4. Cancella prenotazione"); + Console.WriteLine("5. Mostra tutte le prenotazioni"); + Console.WriteLine("0. Esci"); + Console.WriteLine("Scelta: 1"); + Console.WriteLine("Inserire i dati di quale cliente? "); + Console.WriteLine("1"); + Console.WriteLine("2"); + Console.WriteLine("Scelta: 2"); + do { + Console.Write("Inserire il nome: "); + nome = Console.ReadLine(); + if (string.IsNullOrWhiteSpace(nome)) { + Console.WriteLine("Errore: inserire un nome"); + Pausa(); + } + } + while (string.IsNullOrWhiteSpace(nome)); + + do { + Console.Write("Inserire il cognome: "); + cognome = Console.ReadLine(); + if (string.IsNullOrWhiteSpace(cognome)) { + Console.WriteLine("Errore: inserire un cognome"); + Pausa(); + } + } + while (string.IsNullOrWhiteSpace(cognome)); + + do { + Console.Write("Inserire il codice fiscale: "); + codiceFiscale = Console.ReadLine(); + if (string.IsNullOrWhiteSpace(codiceFiscale)) { + Console.WriteLine("Errore: inserire un codice fiscale"); + Pausa(); + } + } + while (string.IsNullOrWhiteSpace(codiceFiscale)); + + 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 (!eccezione) { + if (eta <= 0) { + Console.WriteLine("Errore: non è possibile inserire un'età inferiore a 1"); + Pausa(); + } + } + } + while (eccezione || eta <= 0); + + Console.Write("Inserire il numero di prenotazioni: 2"); + + clienti[1] = new Cliente(nome, cognome, codiceFiscale, Convert.ToString(eta), 2); + } + //inserimento prenotazione 1 cliente2 + { + string[] periodi = ["primavera", "estate", "autunno", "inverno"]; + int giorniPrenotati = 0, numeroPersone = 0, scelta; + + Console.WriteLine("Scegliere un'opzione:"); + Console.WriteLine("1. Inserire i dati dei clienti"); + Console.WriteLine("2. Inserire una prenotazione"); + Console.WriteLine("3. Mostra informazioni cliente"); + Console.WriteLine("4. Cancella prenotazione"); + Console.WriteLine("5. Mostra tutte le prenotazioni"); + Console.WriteLine("0. Esci"); + Console.WriteLine("Scelta: 2"); + Console.WriteLine("Inserire la prenotazione di quale cliente? "); + Console.WriteLine("1"); + Console.WriteLine("2"); + Console.WriteLine("Scelta: 2"); + + 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); + + eccezione = false; + + try { + clienti[1].InserisciPrenotazione(periodi[scelta - 1], Convert.ToString(giorniPrenotati), Convert.ToString(numeroPersone)); + } + catch (Exception e) { + Console.WriteLine(e.Message); + eccezione = true; + } + if (!eccezione) { + Console.WriteLine("Prenotazione inserita correttamente."); + } + Pausa(); + } + //inserimento prenotazione 2 cliente2 + { + string[] periodi = ["primavera", "estate", "autunno", "inverno"]; + int giorniPrenotati = 0, numeroPersone = 0, scelta; + + Console.WriteLine("Scegliere un'opzione:"); + Console.WriteLine("1. Inserire i dati dei clienti"); + Console.WriteLine("2. Inserire una prenotazione"); + Console.WriteLine("3. Mostra informazioni cliente"); + Console.WriteLine("4. Cancella prenotazione"); + Console.WriteLine("5. Mostra tutte le prenotazioni"); + Console.WriteLine("0. Esci"); + Console.WriteLine("Scelta: 2"); + Console.WriteLine("Inserire la prenotazione di quale cliente? "); + Console.WriteLine("1"); + Console.WriteLine("2"); + Console.WriteLine("Scelta: 2"); + + 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); + + eccezione = false; + + try { + clienti[1].InserisciPrenotazione(periodi[scelta - 1], Convert.ToString(giorniPrenotati), Convert.ToString(numeroPersone)); + } + catch (Exception e) { + Console.WriteLine(e.Message); + eccezione = true; + } + if (!eccezione) { + Console.WriteLine("Prenotazione inserita correttamente."); + } + Pausa(); + } + //stampa di tutti i clienti e tutte le prenotazioni + { + Console.WriteLine("Scegliere un'opzione:"); + Console.WriteLine("1. Inserire i dati dei clienti"); + Console.WriteLine("2. Inserire una prenotazione"); + Console.WriteLine("3. Mostra informazioni cliente"); + Console.WriteLine("4. Cancella prenotazione"); + Console.WriteLine("5. Mostra tutte le prenotazioni"); + Console.WriteLine("0. Esci"); + Console.WriteLine("Scelta: 3"); + for (int i = 0; i < 2; i++) { + if (clienti[i] != null) { + clienti[i].StampaDatiCliente(); + clienti[i].StampaPrenotazioni(); + } + } + Pausa(); + } + //cancella prenotazione cliente1 + { + int scelta = 0; + Console.WriteLine("Scegliere un'opzione:"); + Console.WriteLine("1. Inserire i dati dei clienti"); + Console.WriteLine("2. Inserire una prenotazione"); + Console.WriteLine("3. Mostra informazioni cliente"); + Console.WriteLine("4. Cancella prenotazione"); + Console.WriteLine("5. Mostra tutte le prenotazioni"); + Console.WriteLine("0. Esci"); + Console.WriteLine("Scelta: 4"); + Console.WriteLine("Cancellare la prenotazione di quale cliente? "); + Console.WriteLine("1"); + Console.WriteLine("2"); + Console.WriteLine("Scelta: 1"); + do { + Console.WriteLine("Scegliere una prenotazione:"); + for (int i = 0; i < clienti[0].GetPrenotazioni().Length; i++) { + if (clienti[0].GetPrenotazioni()[i] != null) { + Console.WriteLine($"{i + 1}. {clienti[0].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[0].GetPrenotazioni().Length) { + Console.WriteLine("Opzione non valida"); + Pausa(); + } + else if (clienti[0].GetPrenotazioni()[scelta - 1] == null) { + Console.WriteLine("Opzione non valida"); + Pausa(); + } + } + } + while (eccezione || scelta < 1 || scelta > clienti[0].GetPrenotazioni().Length || clienti[0].GetPrenotazioni()[scelta - 1] == null); + + clienti[0].CancellaPrenotazione(clienti[0].GetPrenotazioni()[scelta - 1].GetUUID()); + + Console.WriteLine("Prenotazione cancellata con successo."); + Pausa(); + } + //aggiunta prenotazione cliente2 + { + + } + //stampa di tutti i clienti e tutte le prenotazioni + { + Console.WriteLine("Scegliere un'opzione:"); + Console.WriteLine("1. Inserire i dati dei clienti"); + Console.WriteLine("2. Inserire una prenotazione"); + Console.WriteLine("3. Mostra informazioni cliente"); + Console.WriteLine("4. Cancella prenotazione"); + Console.WriteLine("5. Mostra tutte le prenotazioni"); + Console.WriteLine("0. Esci"); + Console.WriteLine("Scelta: 3"); + for (int i = 0; i < 2; i++) { + if (clienti[i] != null) { + clienti[i].StampaDatiCliente(); + clienti[i].StampaPrenotazioni(); + } + } + Pausa(); + } + //stampa tutte le operazioni + { + for (int i = 0; i < clienti.Length; i++) { + if (clienti[i] != null) { + Console.WriteLine($"Cliente n. {i + 1}\n"); + clienti[i].StampaPrenotazioni(); + } + } + Pausa(); + } } static void Menu() { @@ -283,6 +933,7 @@ class Program { Pausa(); break; case 4: + do { Console.WriteLine("Cancellare la prenotazione di quale cliente? "); for (int i = 0; i < clienti.Length; i++) { @@ -346,7 +997,7 @@ class Program { while (eccezione || scelta < 1 || scelta > clienti[input - 1].GetPrenotazioni().Length || clienti[input - 1].GetPrenotazioni()[scelta - 1] == null); clienti[input - 1].CancellaPrenotazione(clienti[input - 1].GetPrenotazioni()[scelta - 1].GetUUID()); - + Console.WriteLine("Prenotazione cancellata con successo."); Pausa(); break;