// Configuração da remoção de convidados.
        private void btnRmvConvidado_Click(object sender, EventArgs e)
        {
            DataGridView  dgvConvidados     = this.dataGridViewConvidadosCompromisso;
            DTO_Convidado convidadoRemovido = new DTO_Convidado();

            var convidadosDataSource = (List <DTO_Convidado>)dataGridViewConvidadosCompromisso.DataSource;

            convidadoRemovido.nomeContato    = dgvConvidados.SelectedRows[0].Cells[0].Value.ToString();
            convidadoRemovido.codCompromisso = int.Parse(dgvConvidados.SelectedRows[0].Cells[1].Value.ToString());  // cod_compromisso: a coluna esta oculta na dataGridView.
            convidadoRemovido.estaConfirmado = bool.Parse(dgvConvidados.SelectedRows[0].Cells[2].Value.ToString());

            //MessageBox.Show(dgvConvidados.SelectedRows[0].Index.ToString());
            //MessageBox.Show(convidadoRemovido.codCompromisso.ToString());

            convidadosDataSource.RemoveAt(int.Parse(dgvConvidados.SelectedRows[0].Index.ToString()));
            //dgvConvidados.Rows.Remove(dgvConvidados.SelectedRows[0]);

            string retornoBLL = BLL_Compromisso.validarRmvConvidado(convidadoRemovido); // Remoção da lista na Base de Dados.

            MessageBox.Show(retornoBLL);

            dgvConvidados.DataSource         = null;
            dgvConvidados.DataSource         = convidadosDataSource;
            dgvConvidados.Columns[1].Visible = false;

            this.dataGridViewConvidadosCompromisso.ClearSelection();
            this.btnRmvConvidado.Enabled = false;
        }
        } // Fim alterarCompromisso();

        public static string addNewConvidado(DTO_Convidado obj_dtoConvidado)
        {
            DAL_Conexao myDBConnection = new DAL_Conexao();

            try
            {
                string script = "INSERT INTO tbl_convidado_compromisso " +
                                "(nome_contato, cod_compromisso, estaConfirmado) " +
                                "VALUES " +
                                "(@nomeContato, @codCompromisso, DEFAULT);";

                MySqlCommand cmd = new MySqlCommand(script, myDBConnection.conectar());

                cmd.Parameters.AddWithValue("@nomeContato", obj_dtoConvidado.nomeContato);
                cmd.Parameters.AddWithValue("@codCompromisso", obj_dtoConvidado.codCompromisso);

                cmd.ExecuteNonQuery();

                return("Convidado adicionado à lista.");
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                if (myDBConnection.conectar().State != ConnectionState.Closed)
                {
                    myDBConnection.conectar().Close();
                }
            }
        } // Fim addNewConvidado();
 public static string validarRmvConvidado(DTO_Convidado obj_dtoConvidado)
 {
     if (String.IsNullOrEmpty(obj_dtoConvidado.nomeContato))
     {
         obj_dtoConvidado.nomeContato = null;
     }
     // return: "Contato removido da lista.";
     return(DAL_Compromisso.rmvConvidado(obj_dtoConvidado));
 }
        } // Fim addNewConvidado();

        public static string rmvConvidado(DTO_Convidado obj_dtoConvidado)
        {
            DAL_Conexao myDBConnection = new DAL_Conexao();

            try
            {
                string script;

                if (String.IsNullOrEmpty(obj_dtoConvidado.nomeContato))
                {
                    script = "DELETE FROM tbl_convidado_compromisso " +
                             "WHERE nome_contato = ' ' OR nome_contato IS NULL AND cod_compromisso = @codCompromisso " +
                             "LIMIT 1;";
                }
                else
                {
                    script = "DELETE FROM tbl_convidado_compromisso " +
                             "WHERE nome_contato = @nomeContato AND cod_compromisso = @codCompromisso;";
                }

                MySqlCommand cmd = new MySqlCommand(script, myDBConnection.conectar());

                cmd.Parameters.AddWithValue("@nomeContato", obj_dtoConvidado.nomeContato);
                cmd.Parameters.AddWithValue("@codCompromisso", obj_dtoConvidado.codCompromisso);

                cmd.ExecuteNonQuery();

                return("Convidado removido da lista.");
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                if (myDBConnection.conectar().State != ConnectionState.Closed)
                {
                    myDBConnection.conectar().Close();
                }
            }
        } // Fim rmvConvidado();
        // Configuração da adição de novos convidados.
        private void btnConvidarContato_Click(object sender, EventArgs e)
        {
            DataGridView  dgvContatos   = this.dataGridViewContatosCompromisso;
            DataGridView  dgvConvidados = this.dataGridViewConvidadosCompromisso;
            DTO_Convidado newConvidado  = new DTO_Convidado();

            var convidadosDataSource = (List <DTO_Convidado>)dataGridViewConvidadosCompromisso.DataSource;

            newConvidado.codCompromisso = int.Parse(this.lblHiddenCod.Text);
            newConvidado.nomeContato    = dgvContatos.SelectedRows[0].Cells[0].Value.ToString();
            newConvidado.estaConfirmado = true;

            bool isConvidado = false;                           // Flag de nome já identificado na lista de convidados.

            foreach (DataGridViewRow row in dgvConvidados.Rows) // Verificamos a coluna do nome em cada linha do dataGridView.
            {
                object nome = row.Cells[0].Value;
                if (nome != null && nome.ToString() == newConvidado.nomeContato)
                {
                    MessageBox.Show("Contato já convidado");
                    isConvidado = true;
                    break;
                }
            }

            if (!isConvidado)
            {
                convidadosDataSource.Add(newConvidado);
                string retornoBLL = BLL_Compromisso.validarNewConvidado(newConvidado);  // Adição à lista na Base de Dados.
                MessageBox.Show(retornoBLL);
            }

            //MessageBox.Show("cod: " + lblHiddenCod.Text + "\nnome: " + dgvContatos.SelectedRows[0].Cells[0].Value.ToString() + "\nconfirmado: " + true.ToString());

            dataGridViewConvidadosCompromisso.DataSource         = null;
            dataGridViewConvidadosCompromisso.DataSource         = convidadosDataSource;
            dataGridViewConvidadosCompromisso.Columns[1].Visible = false;   // Oculta a coluna "cod_compromisso".
            //dataGridViewConvidadosCompromisso.Refresh();
        }
 public static string validarNewConvidado(DTO_Convidado obj_dtoConvidado)
 {
     // return: "Convidado adicionado à lista.";
     return(DAL_Compromisso.addNewConvidado(obj_dtoConvidado));
 }