EF 6 - Aplicação em Camadas - Criando a camada de apresentação (UI) - VII (final)


 Neste artigo vamos concluir o nosso exemplo de aplicação em camadas com Entity Framework e o padrão repositório, implementando o código para a manutenção de funcionários e de consultas.

Camada de apresentação - Implementação de funcionalidades para Funcionários e Consultas

No artigo anterior criamos a camada de apresentação e iniciamos a implementação do código para a guia Departamentos. Vamos continuar a implementação para as demais guias do formulário.

1- Implementação das funcionalidades referente à guia Funcionários

No evento Click do botão carregar da guia Departamentos vamos definir o código que irá carregar os funcionários cadastrados exibindo-os no controle DataGridView - dgvFuncionarios:

 private void btnCarregarFuncis_Click(object sender, EventArgs e)
  {
            empregadoBLL = new EmpregadoBLL();
            List<Empregado> emp = empregadoBLL.Get_EmpregadoInfo();
            dgvFuncionarios.DataSource = emp.ToList();
            formataGridViewFunci(dgvFuncionarios);
  }

No evento Click do botão Localizar temos o código que irá localizar o funcionário pelo código exibindo os seus dados nas caixas de texto do formulário:

  private void btnLocalizarFunci_Click(object sender, EventArgs e)
  {
            Empregado emp = new Empregado();
            EmpregadoBLL _empregadoBLL = new EmpregadoBLL();            
            int codigo = Convert.ToInt32(txtCodigoFunci.Text);
            emp = empregadoBLL.Localizar(codigo);
            txtNomeFunci.Text = emp.Nome;
            txtSobreNome.Text= emp.Sobrenome;
            txtEmail.Text = emp.Email;
            cboDepartamentoFunci.SelectedValue = emp.DepartamentoId;
  }

No evento Click do botão Incluir temos o código que inclui um funcionário:

 private void btnIncluirFunci_Click(object sender, EventArgs e)
  {
            try
            {
                Empregado emp = new Empregado();
                EmpregadoBLL _empregadoBLL = new EmpregadoBLL();
                emp.Nome = txtNomeFunci.Text;
                emp.Sobrenome = txtSobreNome.Text;
                emp.Email = txtEmail.Text;
                emp.DepartamentoId = Convert.ToInt32(cboDepartamentoFunci.SelectedValue);
                _empregadoBLL.AdicionarEmpregado(emp);
                MessageBox.Show("Empregado incluído com sucesso !", "Novo", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
 }

No evento Click do botão Excluir temos o código que exclui um funcionário:

private void btnExcluirFunci_Click(object sender, EventArgs e)
 {
            try
            {
                Empregado emp = new Empregado();
                EmpregadoBLL _empregadoBLL = new EmpregadoBLL();
                int codigo = Convert.ToInt32(txtCodigoFunci.Text);
                emp = empregadoBLL.Localizar(codigo);
                empregadoBLL.ExcluirEmpregado(emp);
                MessageBox.Show("Empregado excluído com sucesso !", "Excluir", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
 }

No evento Click do botão Alterar temos o código que alterar um funcionário:   

 private void btnAlterarFunci_Click(object sender, EventArgs e)
 {
            try
            {
                Empregado emp = new Empregado();
                empregadoBLL = new EmpregadoBLL();
                int codigo = Convert.ToInt32(txtCodigoFunci.Text);
                //
                emp = empregadoBLL.Localizar(codigo);
                emp.Nome = txtNomeFunci.Text;
                emp.Sobrenome = txtSobreNome.Text;
                emp.Email = txtEmail.Text;
                emp.DepartamentoId = Convert.ToInt32(cboDepartamentoFunci.SelectedValue);
                //
                empregadoBLL.AlterarEmpregado(emp);
                MessageBox.Show("Empregado alterado com sucesso !", "Alterar", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
  }

No evento Click do botão Limpar limpamos o combobox de departamentos e  temos a chamada da rotina LimparTextBox() que limpa os controles TextBox do formulário:   

private void btnLimparFunci_Click(object sender, EventArgs e)
{
                LimparTextBox(this);
                cboDepartamentoFunci.Text = "";
}
 public void LimparTextBox(Control control)
 {
            foreach (Control c in control.Controls)
            {
                if (c is TextBox)
                {
                    ((TextBox)c).Clear();
                }
                if (c.HasChildren)
                {
                    LimparTextBox(c);
                }
            }
 }

A formatação do datagridview - dgvFunci - é feita pelo método formataGridViewFunci() :

 private void formataGridViewFunci(DataGridView gdvDados)
  {
            var gdvFunci = gdvDados;
            gdvFunci.AutoGenerateColumns = false;
            gdvFunci.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders;
            gdvFunci.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single;
            //altera a cor das linhas alternadas no grid
            gdvFunci.RowsDefaultCellStyle.BackColor = System.Drawing.Color.White;
            gdvFunci.AlternatingRowsDefaultCellStyle.BackColor = System.Drawing.Color.Aquamarine;
            //altera o nome das colunas
            gdvFunci.Columns[0].HeaderText = "Emp.ID";
            gdvFunci.Columns[1].HeaderText = "Dep.ID";
            gdvFunci.Columns[2].HeaderText = "Nome";
            gdvFunci.Columns[3].HeaderText = "Sobrenome";
            gdvFunci.Columns[4].HeaderText = "Email";
            //
            gdvFunci.Columns[0].Width = 35;
            gdvFunci.Columns[1].Width = 50;
            gdvFunci.Columns[2].Width = 100;
            gdvFunci.Columns[3].Width = 100;
            gdvFunci.Columns[4].Width = 100;
            //esconde a coluna
            //gdvFunci.Columns[0].Visible = false;
            gdvFunci.Columns[5].Visible = false;
            //seleciona a linha inteira
            gdvFunci.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
            //não permite seleção de multiplas linhas
            gdvFunci.MultiSelect = false;
            // exibe nulos formatados
            gdvFunci.DefaultCellStyle.NullValue = " - ";
            //permite que o texto maior que célula não seja truncado
            gdvFunci.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
   }

No evento CellClick do datagridview dgvFuncionarios temos o código que obtém os valores da linha selecionada e exibe-os nas caixas de texto do formulário:

 private void dgvFuncionarios_CellClick(object sender, DataGridViewCellEventArgs e)
 {
            try
            {
                if (dgvFuncionarios.Rows[e.RowIndex].Cells[e.ColumnIndex].Value != null)
                {
                    txtCodigoFunci.Text = dgvFuncionarios.Rows[e.RowIndex].Cells[0].Value.ToString();
                    cboDepartamentoFunci.SelectedValue = Convert.ToInt32(dgvFuncionarios.Rows[e.RowIndex].Cells[1].Value.ToString());
                    txtNomeFunci.Text = dgvFuncionarios.Rows[e.RowIndex].Cells[2].Value.ToString();
                    txtSobreNome.Text = dgvFuncionarios.Rows[e.RowIndex].Cells[3].Value.ToString();
                    txtEmail.Text = dgvFuncionarios.Rows[e.RowIndex].Cells[4].Value.ToString();
                }
            }
            catch(Exception ex)
            {
            }
 }

2- Implementação das funcionalidades referente à guia Consultas

No evento Click do botão Processar temos o código que localiza os funcionários de um departamento selecionado exibindo-os no datagridview dgvFunciDepartamento:

private void btnProcessar_Click(object sender, EventArgs e)
 {
            int codigoDepartamento = Convert.ToInt32(cboDepartamentos.SelectedValue);
            empregadoBLL = new EmpregadoBLL();
            dgvFunciDepartamento.DataSource = empregadoBLL.GetEmpregadosPorDepartamento(codigoDepartamento);
            formataGridViewFunci(dgvFunciDepartamento);
 }

A formatação do datagridView é feito pelo método formataGridViewFunci() já exibido anteriormente.

Dessa forma já temos nossa camada de apresentação implementada com todas as suas funcionalidades usando o Entity Framework 6 e o padrão repositório em um projeto em camadas.

Concluímos assim essa série de 7 artigos onde foi mostrado como criar uma aplicação usando o Entity Framework e o padrão repositório para realizar as operações básicas de manutenção de dados.

Pegue o projeto completo aqui : RepositorioEF6.zip

Não se turbe o vosso coração; credes em Deus, crede também em mim.
Na casa de meu Pai há muitas moradas; se não fosse assim, eu vo-lo teria dito. Vou preparar-vos lugar.
E quando eu for, e vos preparar lugar, virei outra vez, e vos levarei para mim mesmo, para que onde eu estiver estejais vós também.

João 14:1-3

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

  Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

Referências:


José Carlos Macoratti