Baixe o app para aproveitar ainda mais
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
Compartilhar