Ejemplo n.º 1
0
        private void salvataggioDatabase()
        {
            int[] idDb = new int[db.contaItem("Auto")];
            db.getIds("Auto", idDb);
            SerializableBindingList <int> idList = new SerializableBindingList <int>();

            foreach (Auto auto in bindingListVeicoli.OfType <Auto>())
            {
                if (auto.Id == 0)
                {
                    db.aggiungiRecord("Auto", auto.Marca, auto.Modello, auto.Colore, auto.Cilindrata, auto.PotenzaKw, auto.Immatricolazione,
                                      auto.IsUsato, auto.IsKmZero, auto.KmPercorsi, auto.Prezzo, auto.NumAirbag, "/");
                }
                else
                {
                    idList.Add(auto.Id);
                }
            }
            if (idList.Count != 0)
            {
                for (int i = 0; i < idDb.Length; i++)
                {
                    bool presente = false;
                    int  j        = 0;
                    do
                    {
                        if (idDb[i] == idList[j])
                        {
                            presente = true;
                        }
                        j++;
                    } while (j != idList.Count && presente == false);
                    if (presente == false)
                    {
                        db.eliminaRecord("Auto", idDb[i]);
                    }
                }
            }
            else
            {
                for (int i = 0; i < idDb.Length; i++)
                {
                    db.eliminaRecord("Auto", idDb[i]);
                }
            }

            idList.Clear();
            idDb = new int[db.contaItem("Moto")];
            db.getIds("Moto", idDb);
            foreach (Moto moto in bindingListVeicoli.OfType <Moto>())
            {
                if (moto.Id == 0)
                {
                    db.aggiungiRecord("Moto", moto.Marca, moto.Modello, moto.Colore, moto.Cilindrata, moto.PotenzaKw, moto.Immatricolazione,
                                      moto.IsUsato, moto.IsKmZero, moto.KmPercorsi, moto.Prezzo, 0, moto.MarcaSella);
                }
                else
                {
                    idList.Add(moto.Id);
                }
            }
            if (idList.Count != 0)
            {
                for (int i = 0; i < idList.Count; i++)
                {
                    bool presente = false;
                    int  j        = 0;
                    do
                    {
                        if (idList[i] == idDb[j])
                        {
                            presente = true;
                        }
                        j++;
                    } while (j != idDb.Length && presente == false);
                    if (presente == false)
                    {
                        db.eliminaRecord("Moto", idList[i]);
                    }
                }
            }
            else
            {
                for (int i = 0; i < idDb.Length; i++)
                {
                    db.eliminaRecord("Moto", idDb[i]);
                }
            }

            modificato = false;
            bindingListVeicoli.Clear();
            CaricaDati();
            MessageBox.Show("Dati salvati correttamente");
        }
        static void Main(string[] args)
        {
            string[] newItem = new string[11];
            string[] listaVeicoli;
            string   airbag;
            string   nomeTab;
            int      intParse;
            double   douParse;
            char     scelta;

            do
            {
                menu();
                Console.Write(" DIGITA LA TUA SCELTA: ");
                scelta = Console.ReadKey().KeyChar;
                switch (scelta)
                {
                case '1':
                    nomeTab = sceltaTabella();
                    db.creaTabella(nomeTab);
                    Console.WriteLine("Tabella creata correttamente");
                    Console.ReadKey();
                    break;

                case '2':
                    nomeTab = sceltaTabella();
                    for (int i = 0; i < campi.Length; i++)
                    {
                        if (i == 3 || i == 8)
                        {
                            do
                            {
                                Console.Write($"Inserisci {campi[i]}: ");
                            } while (!int.TryParse(Console.ReadLine(), out intParse));
                            newItem[i] = intParse.ToString();
                        }
                        else if (i == 4 || i == 9)
                        {
                            do
                            {
                                Console.Write($"Inserisci {campi[i]}: ");
                            } while (!double.TryParse(Console.ReadLine(), out douParse));
                            newItem[i] = douParse.ToString();
                        }
                        else
                        {
                            Console.Write($"Inserisci {campi[i]}: ");
                            newItem[i] = Console.ReadLine();
                        }
                    }
                    if (nomeTab == "Auto")
                    {
                        Console.Write("Inserisci il numero di airbag: ");
                        airbag      = Console.ReadLine();
                        newItem[10] = "/";
                    }
                    else
                    {
                        Console.Write("Inserisci la marca della sella: ");
                        newItem[10] = Console.ReadLine();
                        airbag      = "0";
                    }
                    newItem[newItem.Length - 1] = Console.ReadLine();
                    db.aggiungiRecord(nomeTab, newItem[0], newItem[1], newItem[2], Convert.ToInt32(newItem[3]), Convert.ToDouble(newItem[4]),
                                      Convert.ToDateTime(newItem[5]), newItem[6] == "Si"? true:false, newItem[7] == "Si" ? true : false, Convert.ToInt32(newItem[8]),
                                      Convert.ToDouble(newItem[9]), Convert.ToInt32(airbag), newItem[10]);
                    Console.WriteLine(nomeTab + " aggiunta correttamente");
                    Console.ReadKey();
                    break;

                case '3':
                    nomeTab      = sceltaTabella();
                    listaVeicoli = new string[db.contaItem(nomeTab)];
                    stampaVeicoli(nomeTab, listaVeicoli);
                    Console.ReadKey();
                    break;

                case '4':
                    nomeTab      = sceltaTabella();
                    listaVeicoli = new string[db.contaItem(nomeTab)];
                    stampaVeicoli(nomeTab, listaVeicoli);
                    do
                    {
                        Console.Write("Inserisci il numero del veicolo che desideri eliminare: ");
                    } while (!int.TryParse(Console.ReadLine(), out intParse));
                    db.eliminaRecord(nomeTab, Convert.ToInt32(listaVeicoli[intParse - 1].Split('-')[1]));     //prendo L'id nascosto all'interno della stringa
                    Console.WriteLine(nomeTab + " eliminata correttamente");
                    Console.ReadKey();
                    break;

                case '5':
                    nomeTab = sceltaTabella();
                    db.eliminaTabella(nomeTab);
                    Console.WriteLine("Tabella eliminata correttamente");
                    Console.ReadKey();
                    break;

                default:
                    break;
                }
            } while (scelta != 'X' && scelta != 'x');
        }