Buscar

Aula_16 11 18 PARTE 2

Prévia do material em texto

Treinamento em C# WebDeveloper
	
Aula
09
	
	Sexta-feira, 16 de Novembro de 2018
	
	
	
Desenvolvimento Orientado a Objetos em C#
	
Formatando o campo TextBoxFor 
para exibir a data corretamente:
@model Projeto.Presentation.Models.FuncionarioEdicaoModel
@{
 Layout = null;
}
<!DOCTYPE html>
<html>
<head>
 <meta name="viewport" content="width=device-width" />
 <title>Edicao</title>
 <link href="~/Content/bootstrap.css" rel="stylesheet" />
</head>
<body>
 <div class="container">
 <h1>Atualizar dados do Funcionário</h1>
 <a href="/Funcionario/Consulta" class="btn btn-info btn-sm">
 Voltar para a consulta
 </a>
 <hr />
 @using (Html.BeginForm("AtualizarFuncionario", 
			"Funcionario", FormMethod.Post))
 {
 <div class="text-danger">
 @Html.ValidationSummary()
 </div>
 <!-- CAMPO OCULTO -->
 @Html.HiddenFor(model => model.IdFuncionario);
 <label>Nome do Funcionário:</label> <br />
 @Html.TextBoxFor(model => model.Nome,
 new
 {
 @class = "form-control col-md-3",
 @placeholder = "Informe o nome"
 })
 <br />
 <label>Salário:</label> <br />
 @Html.TextBoxFor(model => model.Salario,
 new
 {
 @class = "form-control col-md-3",
 @placeholder = "Informe o salário"
 })
 <br />
 <label>Data de Admissão:</label> <br />
 @Html.TextBoxFor(model => model.DataAdmissao,
 "{0:yyyy-MM-dd}",
 new
 {
 @class = "form-control col-md-3",
 @type = "date"
 })
 <br />
 <input type="submit" value="Atualizar Funcionário"
 class="btn btn-primary" />
 <br />
 <br />
 <h4>@ViewBag.Resultado</h4>
 }
 </div>
</body>
</html>
Atualizando os dados do funcionario:
/FuncionarioBusiness.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Projeto.Repository.Entities;
using Projeto.Repository.Repositories;
using System.Diagnostics;
namespace Projeto.Business
{
 public class FuncionarioBusiness
 {
 //método para realizar o cadastro de um funcionario..
 public string Cadastrar(Funcionario f)
 {
 FuncionarioRepository funcionarioRepository 
				= new FuncionarioRepository();
 try
 {
 funcionarioRepository.AbrirConexao();
 funcionarioRepository.Inserir(f);
 return $"Funcionário {f.Nome}, cadastrado com sucesso.";
 }
 catch(Exception e)
 {
 Debug.WriteLine(e.Message);
 //retornar mensagem de erro..
 return "Erro ao cadastrar funcionário.";
 }
 finally
 {
 funcionarioRepository.FecharConexao();
 }
 }
 //método para retornar a consulta de funcionarios
 public List<Funcionario> Consultar()
 {
 //declarar uma lista vazia..
 List<Funcionario> lista = new List<Funcionario>();
 FuncionarioRepository repository = new FuncionarioRepository();
 try
 { 
 repository.AbrirConexao();
 lista = repository.Consultar();
 }
 catch(Exception e)
 {
 Debug.WriteLine(e.Message);
 }
 finally
 {
 repository.FecharConexao();
 }
 //retornar a lista..
 return lista;
 }
 //método para excluir o funcionario..
 public string Excluir(int idFuncionario)
 {
 FuncionarioRepository repository = new FuncionarioRepository();
 try
 {
 repository.AbrirConexao();
 repository.Excluir(idFuncionario);
 return "Funcionário excluido com sucesso.";
 }
 catch(Exception e)
 {
 Debug.WriteLine(e.Message);
 return "Não foi possível excluir o funcionário";
 }
 finally
 {
 repository.FecharConexao();
 }
 }
 //método para consultar 1 funcionario pelo id..
 public Funcionario ConsultarPorId(int idFuncionario)
 {
 FuncionarioRepository repository = new FuncionarioRepository();
 Funcionario funcionario = null; //sem espaço de memória
 try
 {
 repository.AbrirConexao();
 funcionario = repository.ConsultarPorId(idFuncionario);
 }
 catch(Exception e)
 {
 Debug.WriteLine(e.Message);
 }
 finally
 {
 repository.FecharConexao();
 }
 return funcionario; //retornando o objeto..
 }
 //método para atualizar o funcionario..
 public string Atualizar(Funcionario f)
 {
 FuncionarioRepository repository = new FuncionarioRepository();
 try
 {
 repository.AbrirConexao();
 repository.Atualizar(f);
 return $"Funcionário {f.Nome}, atualizado com sucesso.";
 }
 catch(Exception e)
 {
 Debug.WriteLine(e.Message);
 return "Erro ao atualizar o funcionário.";
 }
 finally
 {
 repository.FecharConexao();
 }
 }
 }
}
Voltando no controller:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Projeto.Repository.Entities; //importando..
using Projeto.Business; //importando..
using Projeto.Presentation.Models; //importando..
namespace Projeto.Presentation.Controllers
{
 public class FuncionarioController : Controller
 {
 // GET: Funcionario/Cadastro
 public ActionResult Cadastro()
 {
 return View();
 }
 // GET: Funcionario/Consulta
 public ActionResult Consulta()
 {
 List<FuncionarioConsultaModel> lista = ObterFuncionarios();
 //enviando a lista para a página..
 return View(lista);
 } 
 
 // GET: Funcionario/Edicao?idFuncionario={0}
 public ActionResult Edicao(int idFuncionario)
 {
 FuncionarioEdicaoModel model = new FuncionarioEdicaoModel();
 //buscando da camada de negócio..
 FuncionarioBusiness business = new FuncionarioBusiness();
 Funcionario funcionario = business.ConsultarPorId(idFuncionario);
 
 //verificar se o funcionario foi encontrado..
 if(funcionario != null)
 {
 model.IdFuncionario = funcionario.IdFuncionario;
 model.Nome = funcionario.Nome;
 model.Salario = funcionario.Salario;
 model.DataAdmissao = funcionario.DataAdmissao;
 }
 //enviando a model..
 return View(model);
 }
 [HttpPost] //recebe uma requisição POST da página
 public ActionResult CadastrarFuncionario(FuncionarioCadastroModel model)
 {
 //verificar se os dados recebidos atraves da classe model
 //passaram nas regras de validação..
 if(ModelState.IsValid)
 {
 Funcionario funcionario = new Funcionario();
 funcionario.Nome = model.Nome;
 funcionario.Salario = model.Salario;
 funcionario.DataAdmissao = model.DataAdmissao;FuncionarioBusiness business = new FuncionarioBusiness();
 string mensagem = business.Cadastrar(funcionario);
 //enviando a mensagem para a página..
 ViewBag.Resultado = mensagem;
 //limpar todos os campos do formulário
 ModelState.Clear();
 }
 //nome da página
 return View("Cadastro");
 }
 //GET : /Funcionario/Exclusao?idFuncionario={0}
 public ActionResult Exclusao(int idFuncionario)
 {
 //acessar a camada de regras de negócio..
 FuncionarioBusiness business = new FuncionarioBusiness();
 string mensagem = business.Excluir(idFuncionario);
 //exibindo a mensagem na página..
 ViewBag.Resultado = mensagem;
 //redirecionar de volta para a página de consulta..
 List<FuncionarioConsultaModel> lista = ObterFuncionarios();
 //retornando para a página..
 return View("Consulta", lista);
 }
 [HttpPost] //recebe requisições do tipo POST
 public ActionResult AtualizarFuncionario(FuncionarioEdicaoModel model)
 {
 //verificar se todos os campos da model foram validados com sucesso..
 if(ModelState.IsValid)
 {
 Funcionario funcionario = new Funcionario();
 funcionario.IdFuncionario = model.IdFuncionario;
 funcionario.Nome = model.Nome;
 funcionario.Salario = model.Salario;
 funcionario.DataAdmissao = model.DataAdmissao;
 FuncionarioBusiness business = new FuncionarioBusiness();
 string mensagem = business.Atualizar(funcionario);
 ViewBag.Resultado = mensagem;
 List<FuncionarioConsultaModel> lista = ObterFuncionarios();
 return View("Consulta", lista);
 }
 else //erro de validação
 {
 //redirecionando..
 return View("Edicao");
 }
 }
 private static List<FuncionarioConsultaModel> ObterFuncionarios()
 {
 //declarando uma lista da classe de modelo..
 List<FuncionarioConsultaModel> lista 
				= new List<FuncionarioConsultaModel>();
 //buscando os dados da camada de negócio..
 FuncionarioBusiness business = new FuncionarioBusiness();
 foreach (Funcionario funcionario in business.Consultar())
 {
 FuncionarioConsultaModel model = new FuncionarioConsultaModel();
 model.IdFuncionario = funcionario.IdFuncionario;
 model.Nome = funcionario.Nome;
 model.Salario = funcionario.Salario;
 model.DataAdmissao = funcionario.DataAdmissao;
 lista.Add(model); //adicionando na lista..
 }
 return lista;
 }
 }
}
Executando:
7

Continue navegando