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: