EF 6 – Criando a camada de apresentação (UI) – Parte 07
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.
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.
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áriosNo 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 altera 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 datagridviewdgvFunciDepartamento:
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








