private void btCadastrar_Click(object sender, EventArgs e)
        {
            try
            {
                if (txCadastroSenha.TextLength >= 6)
                {
                    if (VerificaEmail(txCadastroEmail.Text) || txCadastroEmail.Text == "")
                    {
                        UsuarioAcoesDB usuarioAcoesDB = new UsuarioAcoesDB();
                        MessageBox.Show(usuarioAcoesDB.Insert(
                                            txCadastroUsuario.Text == "" ? null : txCadastroUsuario.Text,
                                            txCadastroNome.Text == "" ? null : txCadastroNome.Text,
                                            txCadastroSenha.Text == "" ? null : txCadastroSenha.Text,
                                            txCadastroEmail.Text == "" ? null : txCadastroEmail.Text,
                                            (int)cbCadastroPrivilegio.SelectedValue));

                        AlimentaDGV();
                    }
                    else
                    {
                        MessageBox.Show("E-Mail invalido");
                    }
                }
                else
                {
                    MessageBox.Show("Senha deve conter no mínimo 6 caracteres");
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Erro ao cadastrar Usuario, contate o desenvolvedor");
            }
        }
        private void btEditar_Click(object sender, EventArgs e)
        {
            try
            {
                if (dgvUsuarios.DataSource != null)
                {
                    if (txCadastroSenha.TextLength >= 6)
                    {
                        if (VerificaEmail(txEditarEmail.Text) || txEditarEmail.Text == "")
                        {
                            UsuarioAcoesDB usuarioAcoesDB = new UsuarioAcoesDB();
                            MessageBox.Show(usuarioAcoesDB.Upgrade(
                                                (int)dgvUsuarios.Rows[dgvUsuarios.SelectedRows[0].Index].Cells["Id"].Value,
                                                txEditarUsuario.Text == "" ? null : txEditarUsuario.Text,
                                                txEditarNome.Text == "" ? null : txEditarNome.Text,
                                                txEditarSenha.Text == "" ? null : txEditarSenha.Text,
                                                txEditarEmail.Text == "" ? null : txEditarEmail.Text,
                                                (int)cbEditarPrivilegio.SelectedValue,
                                                cbEditarStatus.SelectedIndex));

                            AlimentaDGV();
                        }
                        else
                        {
                            MessageBox.Show("E-Mail invalido");
                        }
                    }
                    else
                    {
                        MessageBox.Show("Senha deve conter no mínimo 6 caracteres");
                    }
                }
                else
                {
                    MessageBox.Show("Não á usuario selecionado");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Erro ao cadastrar Usuario, contate o desenvolvedor");
                RegistraLog.Log($"Erro ao clicar no botão editar -- {ex}");
            }
        }
        private void AlimentaDGV()
        {
            try
            {
                UsuarioAcoesDB usuarioAcoesDB    = new UsuarioAcoesDB();
                List <string>  listaContagemSoma = new List <string>();

                string ordem = "";
                if (rbFiltroCrescente.Checked)
                {
                    ordem = "crescente";
                }
                if (rbFiltroDecrescente.Checked)
                {
                    ordem = "decrescente";
                }

                listaContagemSoma = usuarioAcoesDB.Count(
                    txFiltroUsuario.Text == "" ? null : txFiltroUsuario.Text,
                    txFiltroNome.Text == "" ? null : txFiltroNome.Text,
                    txFiltroEmail.Text == "" ? null : txFiltroEmail.Text,
                    (int)cbFiltroPrivilegio.SelectedValue,
                    cbFiltroStatus.SelectedIndex,
                    ckFiltroData.Checked == true ? dtFiltroInicio.Value.ToString("yyyy-MM-dd") : null,
                    ckFiltroData.Checked == true ? dtFiltroFim.Value.ToString("yyyy-MM-dd") : null);

                totalDeRegistros = int.Parse(listaContagemSoma[0]);

                if (totalDeRegistros > 0)
                {
                    int calculoPaginas  = totalDeRegistros / int.Parse(cbQtdPagina.Text);
                    int numeroDePaginas = calculoPaginas + 1;
                    lbPagina.Text = pagina + "/" + numeroDePaginas;
                }
                else
                {
                    dgvUsuarios.DataSource = null;
                }
                if (ultimaPosicao < totalDeRegistros)
                {
                    dgvUsuarios.DataSource = usuarioAcoesDB.Select(
                        txFiltroUsuario.Text == "" ? null : txFiltroUsuario.Text,
                        txFiltroNome.Text == "" ? null : txFiltroNome.Text,
                        txFiltroEmail.Text == "" ? null : txFiltroEmail.Text,
                        (int)cbFiltroPrivilegio.SelectedValue,
                        cbFiltroStatus.SelectedIndex,
                        ckFiltroData.Checked == true ? dtFiltroInicio.Value.ToString("yyyy-MM-dd") : null,
                        ckFiltroData.Checked == true ? dtFiltroFim.Value.ToString("yyyy-MM-dd") : null,
                        ordem,
                        ultimaPosicao,
                        int.Parse(cbQtdPagina.Text));

                    if (dgvUsuarios.DataSource != null)
                    {
                        dgvUsuarios.Columns["Id"].HeaderText         = "Id";
                        dgvUsuarios.Columns["Usuario"].HeaderText    = "Usuário";
                        dgvUsuarios.Columns["Senha"].HeaderText      = "Senha";
                        dgvUsuarios.Columns["Nome"].HeaderText       = "Nome";
                        dgvUsuarios.Columns["Email"].HeaderText      = "E-Mail";
                        dgvUsuarios.Columns["Privilegio"].HeaderText = "Privilégio";
                        dgvUsuarios.Columns["Status"].HeaderText     = "Status";
                        dgvUsuarios.Columns["Data"].HeaderText       = "Data";

                        dgvUsuarios.Columns["Id"].DisplayIndex         = 1;
                        dgvUsuarios.Columns["Usuario"].DisplayIndex    = 2;
                        dgvUsuarios.Columns["Senha"].DisplayIndex      = 3;
                        dgvUsuarios.Columns["Nome"].DisplayIndex       = 4;
                        dgvUsuarios.Columns["Email"].DisplayIndex      = 5;
                        dgvUsuarios.Columns["Privilegio"].DisplayIndex = 6;
                        dgvUsuarios.Columns["Status"].DisplayIndex     = 7;
                        dgvUsuarios.Columns["Data"].DisplayIndex       = 8;

                        dgvUsuarios.Columns["IdPrivilegio"].Visible = false;
                    }

                    chaveFiltro = true;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Erro ao retornar informações de Usuarios");
                RegistraLog.Log($"Erro ao retornar dados de Usuarios -- {ex}");
            }
        }