// --- TRASFERISCE I DATI DAL DATABASE ALLA LISTA --- public void popolaLista() { SchedaNuoto nuoto = null; // lavoro: oggetto scheda nuoto List <string[]> risultati = null; // lavoro: memorizza i record del database risultati = GestioneDB.eseguiSelect("SELECT * " + "FROM Atleti as A LEFT JOIN Nuoto as N " + "WHERE A.ID = N.IdAtleta " + "ORDER BY N.DataN DESC"); if (risultati.Count > 0) { LNuoto.Clear(); // inizializza la scheda nuoto foreach (string[] record in risultati) { int Id = int.Parse(record[0]), // lavoro: id atleta Durata = int.Parse(record[5]); // lavoro: durata della scheda string Istruttore = record[6], // lavoro: nome dell'istruttore Data = record[16]; // lavoro: data della scheda nuoto = new SchedaNuoto(Id, Durata, Istruttore, Data); // inserisce i dati nell'oggetto nuoto nuoto.inserisciCrawl(int.Parse(record[7]), int.Parse(record[11])); nuoto.inserisciDorso(int.Parse(record[8]), int.Parse(record[12])); nuoto.inserisciRana(int.Parse(record[9]), int.Parse(record[13])); nuoto.inserisciDelfino(int.Parse(record[10]), int.Parse(record[14])); // inserisce l'oggetto nella lista schede LNuoto.Add(nuoto); } } }
// --- ELIMINA UN ATLETA --- public void eliminaAtleta(int id) // input: id atleta { bool errore; // lavoro: flag per errore string elimina = "N"; // lavoro: conferma eliminazione int indice = -1; // lavoro: posizione dell'oggetto in lista Console.WriteLine("*** Elimina Atleta ***" + Environment.NewLine); foreach (Atleta a in LAtleti) { if (a.Id == id) { do { errore = false; try { Console.WriteLine("Eliminare l'atleta? S/N"); elimina = Console.ReadLine(); if (!(elimina is string)) { throw new Exception("Inserire una lettera, 'S' o 'N'"); } if (elimina == "S" || elimina == "s") { // elimina l'atleta dal database if (GestioneDB.eseguiQuery("DELETE FROM Atleti WHERE ID = " + id)) { // salva la posizione dell'oggetto in lista indice = LAtleti.IndexOf(a); Console.WriteLine("Atleta eliminato con successo" + Environment.NewLine); } } } catch (Exception e) // eccezione { errore = true; Console.WriteLine("Errore di input: " + e); } } while (errore); } } if (indice > -1) // rimuove l'oggetto dalla lista { LAtleti.RemoveAt(indice); } else if (elimina == "S" || elimina == "s") { Console.WriteLine("Atleta non presente" + Environment.NewLine); } Console.WriteLine(Environment.NewLine + "Premere un tasto per continuare..."); Console.ReadKey(); Console.Clear(); }
// --- CREA UNA SCHEDA --- public void creaScheda(int id) // input: id atleta { bool errore = false; // lavoro: flag in caso di eccezione SchedaNuoto nuoto = new SchedaNuoto(); // lavoro: oggetto contenente le info della scheda Console.WriteLine("*** Crea una nuova scheda nuoto ***" + Environment.NewLine + Environment.NewLine); do { // downcasting dell'oggetto Scheda nuoto = (SchedaNuoto)inputDati(); nuoto.Idatleta = id; // inserisce i dati nel database if (GestioneDB.eseguiQuery("INSERT INTO Nuoto (Durata," + "Istruttore," + "SerieCrawl," + "SerieDorso," + "SerieRana," + "SerieDelfino," + "RipCrawl," + "RipDorso," + "RipRana," + "RipDelfino," + "IdAtleta) VALUES (" + nuoto.Durata + ", '" + nuoto.Istruttore + "', " + nuoto.Crawl.serie + ", " + nuoto.Dorso.serie + ", " + nuoto.Rana.serie + ", " + nuoto.Delfino.serie + ", " + nuoto.Crawl.ripetizioni + ", " + nuoto.Dorso.ripetizioni + ", " + nuoto.Rana.ripetizioni + ", " + nuoto.Delfino.ripetizioni + ", " + id + ")")) { // aggiunge l'oggetto alla lista LNuoto.Add(nuoto); popolaLista(); Console.WriteLine("Inserimento effettuato" + Environment.NewLine); } else { errore = true; Console.WriteLine(Environment.NewLine + "Errore di inserimento" + Environment.NewLine); } Console.WriteLine(Environment.NewLine + "Premere un tasto per continuare..."); Console.ReadKey(); } while (errore); }
// --- MODIFICA UN ATLETA --- public void modificaAtleta(int id) // input: id atleta { bool trovato = false, // output: flag in caso di atleta presente errore = false; // lavoro: flag in caso di eccezione Atleta atleta = new Atleta(); // lavoro: oggetto d'appoggio Console.WriteLine("*** Modifica Atleta ***" + Environment.NewLine + Environment.NewLine); foreach (Atleta a in LAtleti) { if (a.Id == id) { trovato = true; do { errore = false; // prende i dati da tastiera atleta = inputDati(); // aggiorna dati dell'atleta nel database if (GestioneDB.eseguiQuery("UPDATE Atleti SET" + " Nome = '" + atleta.Nome + "', Cognome = '" + atleta.Cognome + "', Eta = " + atleta.Eta + " WHERE ID = " + a.Id)) { a.Nome = atleta.Nome; a.Cognome = atleta.Cognome; a.Eta = atleta.Eta; Console.WriteLine("Aggiornamento effettuato" + Environment.NewLine); } else { errore = true; Console.WriteLine("Errore di inserimento" + Environment.NewLine); } } while (errore); } } if (!trovato) { Console.WriteLine("Non esiste un atleta con questo nome"); } Console.WriteLine("Premere un tasto per continuare..."); Console.ReadKey(); }
// --- ID ULTIMO UTENTE INSERITO --- public int ultimoInserito(Atleta a) { int id = 0; List <string[]> risultati; risultati = GestioneDB.eseguiSelect("SELECT ID FROM Atleti" + " WHERE Nome = '" + a.Nome + "' AND Cognome = '" + a.Cognome + "' ORDER BY data DESC " + " LIMIT 1"); if (risultati.Count > 0) { foreach (string[] record in risultati) { id = int.Parse(record[0]); } } return(id); }
// --- TRASFERISCE I DATI DAL DATABASE ALLA LISTA --- public void popolaLista() { Atleta atleta = null; // lavoro: oggetto atleta List <string[]> risultati; // lavoro: memorizza i record del database risultati = GestioneDB.eseguiSelect("SELECT * FROM Atleti"); if (risultati.Count > 0) { foreach (string[] record in risultati) { atleta = new Atleta(); atleta.Id = int.Parse(record[0]); atleta.Nome = record[1]; atleta.Cognome = record[2]; atleta.Eta = int.Parse(record[3]); // inserisce l'oggetto nella lista LAtleti.Add(atleta); } } }
// --- TRASFERISCE I DATI DAL DATABASE ALLA LISTA public void popolaLista() { SchedaPalestra palestra; // lavoro: oggetto scheda palestra List <string[]> risultati = null; // lavoro: memorizza i record del database risultati = GestioneDB.eseguiSelect("SELECT * " + "FROM Atleti as A LEFT JOIN Palestra as P " + "WHERE A.ID = P.IdAtleta " + "ORDER BY P.DataP DESC"); if (risultati.Count > 0) { LPalestra.Clear(); // inizializza la lista foreach (string[] record in risultati) { int Id = int.Parse(record[0]), // lavoro: id atleta Durata = int.Parse(record[5]); // lavoro: durata della scheda string Istruttore = record[6], // lavoro: nome dell'istruttore Data = record[22]; // lavoro: data della scheda palestra = new SchedaPalestra(Id, Durata, Istruttore, Data); // inserisce i dati nell'oggetto palestra palestra.inserisciDeltoidi(int.Parse(record[7]), int.Parse(record[14])); palestra.inserisciTricipiti(int.Parse(record[8]), int.Parse(record[15])); palestra.inserisciBicipiti(int.Parse(record[9]), int.Parse(record[16])); palestra.inserisciDorsali(int.Parse(record[10]), int.Parse(record[17])); palestra.inserisciPettorali(int.Parse(record[11]), int.Parse(record[18])); palestra.inserisciAddominali(int.Parse(record[12]), int.Parse(record[19])); palestra.inserisciGambe(int.Parse(record[13]), int.Parse(record[20])); // inserisce l'oggetto nella lista schede LPalestra.Add(palestra); } } }
// metodi // --- CREA UN ATLETA --- public void aggiungiAtleta() { bool errore = false; // lavoro: flag in caso di eccezione Atleta atleta = new Atleta(); // lavoro: oggetto contenente le info dell'atleta Console.WriteLine("*** Inserimento Nuovo Atleta ***" + Environment.NewLine + Environment.NewLine); do { // prende i dati in input da tastiera atleta = inputDati(); // inserisce i dati nel database if (GestioneDB.eseguiQuery("INSERT INTO Atleti (Nome,Cognome,Eta) " + "VALUES('" + atleta.Nome + "','" + atleta.Cognome + "'," + atleta.Eta + ")")) { // memorizza l'id dell'ultimo record inserito atleta.Id = ultimoInserito(atleta); // aggiunge l'oggetto alla lista LAtleti.Add(atleta); Console.WriteLine("Inserimento effettuato" + Environment.NewLine); } else { errore = true; Console.WriteLine("Errore di inserimento" + Environment.NewLine); } Console.WriteLine("Premere un tasto per continuare..."); Console.ReadKey(); } while (errore); }
public static void Applicazione() { // Inizializza le variabili int scelta_generale = -1, // lavoro: opzione del menu generale scelta_atleta = -1, // lavoro: opzione del menu atleta scelta_scheda = -1, // lavoro: opzione del menu scheda id = 0; // lavoro: id dell'atleta // instanzia le classi Interakt con il metodo Singleton InteraktAtleta interaktAtleta = InteraktAtleta.Instance(); InteraktSchedaPalestra interaktSchedaPalestra = InteraktSchedaPalestra.Instance(); InteraktSchedaNuoto interaktSchedaNuoto = InteraktSchedaNuoto.Instance(); // Crea il database se non esiste e apre la connessione GestioneDB.creaDB(); // Trasferisce i dati dal db alle strutture dati interaktAtleta.popolaLista(); interaktSchedaPalestra.popolaLista(); interaktSchedaNuoto.popolaLista(); do { do { Console.WriteLine("--- GESTORE SCHEDE ---" + Environment.NewLine); // Mostra il menu generale scelta_generale = Menu.menuGenerale(); } while (scelta_generale < 1 || scelta_generale > 3); switch (scelta_generale) { case 1: // Mostra l'elenco di tutti gli atleti iscritti interaktAtleta.mostraTutti(); // Sceglie e visualizza l'atleta in base all'id prescelto id = interaktAtleta.mostraUno(0); // Controllo del valore id if (id > 0) { do { interaktAtleta.mostraUno(id); // Mostra le opzioni relative all'atleta prescelto scelta_atleta = Menu.menuAtleta(); } while (scelta_atleta < 0 || scelta_atleta > 6); switch (scelta_atleta) { case 1: // Modifica le info dell'atleta prescelto interaktAtleta.modificaAtleta(id); break; case 2: // Elimina l'atleta prescelto interaktAtleta.eliminaAtleta(id); break; case 3: // Mostra la scheda dell'atleta prescelto do { interaktSchedaPalestra.visualizzaScheda(id); // Mostra le opzioni relative alla scheda palestra dell'atleta prescelto scelta_scheda = Menu.menuScheda(); } while (scelta_scheda < 0 || scelta_scheda > 4); switch (scelta_scheda) { case 1: // Crea una nuova scheda palestra interaktSchedaPalestra.creaScheda(id); break; case 2: // Modifica la scheda palestra interaktSchedaPalestra.modificaScheda(id); break; case 3: // Elimina la scheda palestra interaktSchedaPalestra.eliminaScheda(id); break; default: // Torna al menu principale scelta_generale = 0; break; } break; case 4: // Mostra la scheda nuoto dell'atleta interaktSchedaNuoto.visualizzaScheda(id); // Mostra le opzioni relative alla scheda nuoto dell'atleta prescelto scelta_scheda = Menu.menuScheda(); switch (scelta_scheda) { case 1: // Crea una nuova scheda palestra interaktSchedaNuoto.creaScheda(id); break; case 2: // Modifica la scheda palestra interaktSchedaNuoto.modificaScheda(id); break; case 3: // Elimina la scheda palestra interaktSchedaNuoto.eliminaScheda(id); break; default: // Torna al menu principale scelta_generale = 0; break; } break; case 5: // Calcola la durata di entrambe le schede InteraktSchede.tempoEsecuzione(interaktSchedaNuoto.ritornaScheda(id), interaktSchedaPalestra.ritornaScheda(id)); break; default: // Torna al menu principale scelta_generale = 0; break; } } else // Torna al menu principale { scelta_generale = 0; } break; case 2: // Aggiunge un nuovo atleta interaktAtleta.aggiungiAtleta(); scelta_generale = 0; break; default: // Termina l'esecuzione Console.WriteLine("Buona giornata..." + Environment.NewLine); Console.WriteLine("Premere un tasto per terminare..."); Console.ReadKey(); break; } // Pulisce lo schermo Console.Clear(); } while (scelta_generale == 0 || scelta_generale != 3); }
// --- MODIFICA L'ULTIMA SCHEDA --- public void modificaScheda(int id) // input: id atleta { bool errore, // lavoro: flag in caso di eccezione trovato = false; // lavoro: flag per oggetto trovato SchedaNuoto nuoto = new SchedaNuoto(); // lavoro: oggetto contenente le info della scheda Console.WriteLine("*** Aggiorna la scheda nuoto ***" + Environment.NewLine + Environment.NewLine); foreach (SchedaNuoto n in LNuoto) { if (n.Idatleta == id) { trovato = true; do { errore = false; // downcasting dell'oggetto nuoto = (SchedaNuoto)inputDati(); // aggiorna id dati nel db if (GestioneDB.eseguiQuery("UPDATE Nuoto SET " + "SerieCrawl = " + n.Crawl.serie + ",SerieDorso = " + n.Dorso.serie + ",SerieRana = " + n.Rana.serie + ",SerieDelfino = " + n.Delfino.serie + ",RipCrawl = " + n.Crawl.ripetizioni + ",RipDorso = " + n.Dorso.ripetizioni + ",RipRana = " + n.Rana.ripetizioni + ",RipDelfino = " + n.Delfino.ripetizioni + " WHERE IdAtleta = " + n.Idatleta + " AND DataN = (SELECT DataN" + " FROM Nuoto" + " WHERE IdAtleta = " + n.Idatleta + " ORDER BY DataN DESC" + " LIMIT 1)")) { n.Crawl = nuoto.Crawl; n.Dorso = nuoto.Dorso; n.Rana = nuoto.Rana; n.Delfino = nuoto.Delfino; Console.WriteLine("Aggiornamento effettuato" + Environment.NewLine); } else { errore = true; Console.WriteLine(Environment.NewLine + "Errore di aggiornamento" + Environment.NewLine); } } while (errore); } } if (!trovato) { Console.WriteLine(Environment.NewLine + "Scheda non presente" + Environment.NewLine); } Console.WriteLine(Environment.NewLine + "Premere un tasto per continuare..."); Console.ReadKey(); }
// --- CANCELLA L'ULTIMA SCHEDA --- public void eliminaScheda(int id) // input: id atleta { bool errore; // lavoro: flag per errore string elimina = "N"; // lavoro: conferma eliminazione int indice = -1; // lavoro: flag per scheda presente foreach (SchedaNuoto n in LNuoto) { if (n.Idatleta == id) { do { errore = false; try { Console.WriteLine("Eliminare la scheda? S/N"); elimina = Console.ReadLine(); if (!(elimina is string)) { throw new Exception("Inserire una lettera, 'S' o 'N'"); } if (elimina == "S" || elimina == "s") { // elimina il record dal database if (GestioneDB.eseguiQuery("DELETE FROM Nuoto WHERE" + " IdAtleta = " + n.Idatleta + " AND DataN = (SELECT DataN" + " FROM Nuoto" + " WHERE IdAtleta = " + n.Idatleta + " ORDER BY DataN DESC" + " LIMIT 1)")) { // salva l'indice dell'elemento da rimuovere indice = LNuoto.IndexOf(n); Console.WriteLine(Environment.NewLine + "Scheda eliminata con successo" + Environment.NewLine); } else { errore = true; Console.WriteLine(Environment.NewLine + "Errore in fase di eliminazione" + Environment.NewLine); } } } catch (Exception e) // eccezione { errore = true; Console.WriteLine(Environment.NewLine + "Errore di input: " + e); } } while (errore); } } if (indice > -1) { LNuoto.RemoveAt(indice); // elimina la scheda dalla lista } else if (indice < 0 || (elimina == "S" || elimina == "s")) { Console.WriteLine("Scheda non presente" + Environment.NewLine); } Console.WriteLine(Environment.NewLine + "Premere un tasto per continuare..."); Console.ReadKey(); }
// --- CREA UNA NUOVA SCHEDA --- public void creaScheda(int id) // input: id atleta { // dichiarazione variabili bool errore; // lavoro: flag in caso di eccezione SchedaPalestra palestra = new SchedaPalestra(); // lavoro: oggetto contenente le info della scheda nuoto Console.WriteLine("*** Crea una nuova scheda palestra ***" + Environment.NewLine + Environment.NewLine); do { errore = false; // downcasting palestra = (SchedaPalestra)inputDati(); palestra.Idatleta = id; // inserisce i dati nel database if (GestioneDB.eseguiQuery("INSERT INTO Palestra (Durata," + "Istruttore," + "SerieDeltoidi," + "SerieTricipiti," + "SerieBicipiti," + "SerieDorsali," + "SeriePettorali, " + "SerieAddominali, " + "SerieGambe," + "RipDeltoidi," + "RipTricipiti," + "RipBicipiti," + "RipDorsali," + "RipPettorali, " + "RipAddominali, " + "RipGambe," + "IdAtleta) VALUES (" + palestra.Durata + ", '" + palestra.Istruttore + "', " + palestra.Deltoidi.serie + ", " + palestra.Tricipiti.serie + ", " + palestra.Bicipiti.serie + ", " + palestra.Dorsali.serie + ", " + palestra.Pettorali.serie + ", " + palestra.Addominali.serie + ", " + palestra.Gambe.serie + ", " + palestra.Deltoidi.ripetizioni + ", " + palestra.Tricipiti.ripetizioni + ", " + palestra.Bicipiti.ripetizioni + ", " + palestra.Dorsali.ripetizioni + ", " + palestra.Pettorali.ripetizioni + ", " + palestra.Addominali.ripetizioni + ", " + palestra.Gambe.ripetizioni + ", " + id + ")")) { // aggiunge l'oggetto alla lista LPalestra.Add(palestra); popolaLista(); Console.WriteLine("Inserimento effettuato" + Environment.NewLine); } else { errore = true; Console.WriteLine("Errore di inserimento" + Environment.NewLine); } Console.WriteLine("Premere un tasto per continuare..."); Console.ReadKey(); } while (errore); }
// --- MODIFICA UNA SCHEDA --- public void modificaScheda(int id) // input: id atleta { bool errore, // lavoro: flag in caso di eccezione trovato = false; // lavoro: flag in caso di record presente SchedaPalestra palestra = new SchedaPalestra(); // lavoro: oggetto scheda foreach (SchedaPalestra p in LPalestra) { if (p.Idatleta == id) { trovato = true; Console.WriteLine("*** Aggiorna la scheda palestra ***" + Environment.NewLine + Environment.NewLine); do { errore = false; // downcasting palestra = (SchedaPalestra)inputDati(); // aggiorna id dati nel db if (GestioneDB.eseguiQuery("UPDATE Palestra SET " + "Istruttore = '" + p.Istruttore + "',SerieDeltoidi = " + p.Deltoidi.serie + ",SerieTricipiti = " + p.Tricipiti.serie + ",SerieBicipiti = " + p.Bicipiti.serie + ",SerieDorsali = " + p.Dorsali.serie + ",SeriePettorali = " + p.Pettorali.serie + ",SerieAddominali = " + p.Addominali.serie + ",SerieGambe = " + p.Gambe.serie + ",RipDeltoidi = " + p.Deltoidi.ripetizioni + ",RipTricipiti = " + p.Tricipiti.ripetizioni + ",RipBicipiti = " + p.Bicipiti.ripetizioni + ",RipDorsali = " + p.Dorsali.ripetizioni + ",RipPettorali = " + p.Pettorali.ripetizioni + ",RipAddominali = " + p.Addominali.ripetizioni + ",RipGambe = " + p.Gambe.ripetizioni + " WHERE IdAtleta = " + p.Idatleta + " AND DataP = (SELECT DataP" + " FROM Palestra" + " WHERE IdAtleta = " + p.Idatleta + " ORDER BY DataP DESC" + " LIMIT 1)")) { // aggiorna l'oggetto p.Idatleta = id; p.Istruttore = palestra.Istruttore; p.Durata = palestra.Durata; p.Istruttore = palestra.Istruttore; p.Deltoidi = palestra.Deltoidi; p.Tricipiti = palestra.Tricipiti; p.Bicipiti = palestra.Bicipiti; p.Dorsali = palestra.Dorsali; p.Pettorali = palestra.Pettorali; p.Addominali = palestra.Addominali; p.Gambe = palestra.Gambe; Console.WriteLine("Aggiornamento effettuato" + Environment.NewLine); } else { errore = true; Console.WriteLine("Errore di aggiornamento" + Environment.NewLine); } } while (errore); } } if (!trovato) { Console.WriteLine("Scheda non presente" + Environment.NewLine); } Console.WriteLine("Premere un tasto per continuare..."); Console.ReadKey(); }