예제 #1
0
 /// <summary>
 /// Salvataggio delle operazioni effettuate in fase di modifica
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void BtnSalva_Click(object sender, EventArgs e)
 {
     if (MessageBoxAction.MessageBoxWarningTriggered("Sei sicuro di voler salvare le modifiche ?") == DialogResult.OK)
     {
         if (SalvaDati())
         {
             Home_Load(sender, e);
         }
         else
         {
             MessageBoxAction.MessageBoxErrorTriggered("Dati non salvati");
         }
     }
 }
예제 #2
0
        /// <summary>
        /// Apre una transazione e se vengono rispettate una serie di condizioni
        /// esegue la query con all'interno i parametri di animale
        /// inseriti all'interno della griglia di informazioni presente nella maschera.
        /// </summary>
        /// <returns></returns>
        private bool SalvaDati()
        {
            bool ret = false;

            connectToSql.Open();
            SqlCommand     command = connectToSql.CreateCommand();
            SqlTransaction transaction;

            transaction        = connectToSql.BeginTransaction();
            command.Connection = connectToSql;
            //Assegna la transazione al comando
            command.Transaction = transaction;

            List <Animale>      animale_list      = new List <Animale>();
            List <Proprietario> proprietario_list = new List <Proprietario>();

            //Cicla sulle righe della griglia
            foreach (DataGridViewRow row in datagridPetAnagrafica.Rows)
            {
                //Se il valore di computed non è null, e quindi ha una riga non nuova
                //procede a verificare che il valore di nome sia non null, per verificare che la riga sia valorizzata
                if (FunzioniGenerali.CheckNullField(row, "ID_PROPRIETARIO"))
                {
                    if (FunzioniGenerali.CheckNullField(row, "NOME_PROPRIETARIO") && FunzioniGenerali.CheckNullField(row, "NOME_ANIMALE"))
                    {
                        int    n;
                        string col_nome_animale      = row.Cells["NOME_ANIMALE"].Value.ToString();
                        string col_nome_proprietario = row.Cells["NOME_PROPRIETARIO"].Value.ToString();
                        bool   isNumeric             = int.TryParse(col_nome_animale, out n);
                        //Verifica che il nome non sia un campo numerico
                        if (!isNumeric)
                        {
                            isNumeric = int.TryParse(col_nome_proprietario, out n);
                            if (!isNumeric)
                            {
                                string col_soprannome_animale   = row.Cells["SOPRANNOME"].Value.ToString();
                                string col_eta_animale          = Convert.ToString(row.Cells["ETA_ANIMALE"].Value);
                                string col_cognome_proprietario = row.Cells["COGNOME_PROPRIETARIO"].Value.ToString();

                                //Inizializza un nuovo animale e ne valorizza gli attributi
                                Animale animale = new Animale();
                                animale.c_nome       = col_nome_animale;
                                animale.c_soprannome = col_soprannome_animale;

                                //Ottengo l'id proprietario dell'animale
                                animale.CheckPropAnimale();

                                //Inizializza un nuovo proprietario e ne valorizza gli attributi
                                Proprietario proprietario = new Proprietario();
                                proprietario.c_nome    = col_nome_proprietario;
                                proprietario.c_cognome = col_cognome_proprietario;

                                isNumeric = int.TryParse(col_eta_animale, out n);
                                //Verifica che l'età sia un campo numerico
                                if (isNumeric)
                                {
                                    animale.n_eta = n;
                                    animale.CalcolaEtaAnimaleAnagraficaV1();
                                }
                                animale_list.Add(animale);
                                proprietario_list.Add(proprietario);
                            }
                        }
                    }
                    else
                    {
                        MessageBoxAction.MessageBoxWarningTriggered("Non è possibile procedere senza inserire il nome animale");
                    }
                    break;
                }
            }

            try
            {
                string insert = string.Empty;
                //Aggiunge il proprietario dell'animale
                foreach (Proprietario proprietario_in_lista in proprietario_list)
                {
                    insert = proprietario_in_lista.InsertProprietarioAnagrafica();
                    if (!String.IsNullOrEmpty(insert))
                    {
                        command.CommandText = insert;
                        command.ExecuteNonQuery();
                    }
                }

                //Cicla sugli oggetti nella lista Animale
                foreach (Animale animale_in_lista in animale_list)
                {
                    //Ne ottiene il valore passandolo alla SqlInsertGenerator
                    //Che genererà la query di insert con i parametri contenuti nell'oggetto animale_in_lista
                    //La query verrà eseguita sotto transazione
                    insert = animale_in_lista.InsertAnimaleAnagrafica();
                    if (!String.IsNullOrEmpty(insert))
                    {
                        //Assegna il comando
                        command.CommandText = insert;
                        command.ExecuteNonQuery();
                    }
                }
                //esegue la commit
                transaction.Commit();
                ret = true;
            }
            catch (Exception ex)
            {
                MessageBoxAction.MessageBoxErrorTriggered(ex.Message);
                try
                {
                    transaction.Rollback();
                }
                catch (Exception exc)
                {
                    MessageBoxAction.MessageBoxErrorTriggered(exc.Message);
                }
            }
            connectToSql.Close();
            return(ret);
        }