예제 #1
0
        // --- 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);
                }
            }
        }
예제 #2
0
        // --- 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);
        }
예제 #3
0
        // --- RESTITUISCE L'ULTIMA SCHEDA ---
        public Scheda ritornaScheda(int id)     // input: id atleta
        {
            bool        trovato       = false;  // lavoro: flag per in caso di scheda presente
            SchedaNuoto ultima_scheda = null;   // lavoro: oggetto contenente le info della scheda

            foreach (SchedaNuoto n in LNuoto)
            {
                if (n.Idatleta == id && !trovato)
                {
                    ultima_scheda = n;
                    trovato       = true;
                }
            }

            return(ultima_scheda);
        }
예제 #4
0
        // --- 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();
        }
예제 #5
0
        // --- PRENDE DATI IN INPUT ---
        public Scheda inputDati()
        {
            // Dichiarazione variabili
            int         i      = 0;                 // lavoro: contatore
            bool        errore = false;             // lavoro: flag in caso di eccezione
            SchedaNuoto nuoto  = new SchedaNuoto(); // lavoro: oggetto contenente le info della scheda nuoto
            Esercizio   ex     = new Esercizio();   // lavoro: variabile strutturata Esercizio

            do
            {
                try
                {   // prende in input i valori da inserire nell'oggetto
                    Console.WriteLine("Inserire il tempo di esecuzione della scheda in minuti: ");
                    nuoto.Durata = int.Parse(Console.ReadLine());

                    Console.WriteLine(Environment.NewLine + "Inserire nome dell'istruttore: ");
                    nuoto.Istruttore = Console.ReadLine();

                    foreach (string stile in Enum.GetNames(typeof(Stili)))
                    {
                        // Prende in input serie e vasche di ogni stile
                        Console.WriteLine(Environment.NewLine + "Inserire nr. di serie " + stile + ":");
                        ex.serie = int.Parse(Console.ReadLine());

                        Console.WriteLine(Environment.NewLine + "Inserire nr. di vasche " + stile + ":");
                        ex.ripetizioni = int.Parse(Console.ReadLine());

                        if (ex.serie < 0 || ex.ripetizioni < 0)
                        {
                            throw new Exception("Il numero delle serie e delle vasche deve essere positivo");
                        }
                        else
                        {   // segue l'ordine degli elementi del tipo enum
                            switch (i)
                            {
                            case 0:
                                nuoto.Crawl = ex;
                                break;

                            case 1:
                                nuoto.Dorso = ex;
                                break;

                            case 2:
                                nuoto.Rana = ex;
                                break;

                            case 3:
                                nuoto.Delfino = ex;
                                break;
                            }

                            i++;
                        }
                    }
                }
                catch (FormatException e) // formato errato
                {
                    Console.WriteLine(Environment.NewLine + "Errore di input: " + e + Environment.NewLine);
                    errore = true;
                }
                catch (Exception e) // input fuori dal dominio accettato
                {
                    Console.WriteLine(Environment.NewLine + "Errore di input: " + e + Environment.NewLine);
                    errore = true;
                }

                if (errore)
                {
                    Console.WriteLine(Environment.NewLine + "Premere un tasto per continuare...");
                    Console.ReadKey();
                }
            } while (errore);

            return(nuoto);
        }