public void Cadastrar(AmigoModel modelo_) { // INSERT INTO _conexao.Amigos.Add(modelo_); // Comentado abaixo porque começamos a utilizar o UnitOfWork //_conexao.SaveChanges(); }
// Criamos dois métodos para simular o padrão LAZY LOADING. // Quando falamos de carregamento (SELECT, Bucar dados), podemos fazer dois tipos de carregamentos // EAGER LOADING (CARREGAMENTO ANTECIPADO) // Trazemos tudo de uma única vez, mesmo sem precisar. Pedido (Clientes, Itens Pedido, Produto) // LAZY LOADING (CARREGAMENTO TARDIO) // Trazemos de pokinho e pokinho, conforme a necessidade. // 1) Pedidos, // 2) Clientes, // 3) Produtos public IList <AmigoModel> ListarEagerLoading() { var amigos = new List <AmigoModel>(); for (int i = 1; i <= 10; i++) { var novoAmigo = new AmigoModel(); novoAmigo.Codigo = i; novoAmigo.Nome = "Nome " + i; novoAmigo.Email = "email" + i + "@teste.com"; novoAmigo.CodigoSexo = 1; novoAmigo.CodigoEstadoCivil = 2; // EAGER LOADING (Trouzemos tudo junto) novoAmigo.Sexo = new SexoModel { Codigo = 1, Descricao = "Feminino", DataCadastro = DateTime.Now }; novoAmigo.Civil = new EstadoCivilModel { Codigo = 1, Descricao = "Casado(a)", DataCadastro = DateTime.Now }; amigos.Add(novoAmigo); } return(amigos); }
public void Testar_Classe_Negocio_Amigo_Erro() { var erros = new List<String>(); // A classe que armazenamos os dados (da página) var dadosTela = new AmigoModel { Nome = "Amigo 01" }; // A classe de negócio (TM) // O único comando da classe que pode ser publico, é o TEMPLATE METHOD (Etapas) todos os outros tem que ser protegidos só serão visiveis dentro // da classe filha, da classe que herdou! var negocio = new AmigoBusiness(dadosTela); // Sempre que você disparar um evento, obrigatoriamente tem que interceptar (Monitorar), escutar ele! Se não capturar da pau de NULL REFERENCE. // Criamos um metodo anonimo (INLINE) para receber as mensagens de erro daquele eveto. // => Expressão lambda é o corpo do método // "+=" é igual a capturar o evento escutado. // "=>" é igual a Executar // "{}" é o corpo do método (inline) // É um ponteiro do memória negocio.EnviarErros += (listaErros) => { erros = listaErros; }; negocio.Executar(); Assert.AreNotEqual(0, erros.Count); }
public void Testar_Amigos_Eager_Loading() { // YAGNI (Você realmente precisa disso AGORA?) var modelo = new AmigoModel(); var amigos = modelo.ListarEagerLoading(); Assert.AreNotEqual(null, amigos[0].Sexo); Assert.AreNotEqual(null, amigos[0].Civil); }
public ActionResult Cadastrar(AmigoModel amigoModel) { _unidadeAmigo.AmigoDAO.Cadastrar(amigoModel); _unidadeAmigo.Confirmar(); var amigos = _unidadeAmigo.AmigoDAO.Listar(); return RedirectToAction("Listar"); }
public void Testar_Amigos_Lazy_Loading() { // YAGNI (Você realmente precisa disso AGORA?) var modelo = new AmigoModel(); var amigos = modelo.ListarLazyLoading(); // Nesse momento mandamos trazer os dados das tabelas, relacionadas (CARREGAMENTO TARDIO) buscamos só quando precisamos. Assert.AreNotEqual(null, amigos[0].Sexo); Assert.AreNotEqual(null, amigos[0].Civil); }
public void Testar_Cadastro_Amigo() { var novoAmigo = new AmigoModel(); novoAmigo.Nome = "Amigo 22:12"; novoAmigo.Email = "*****@*****.**"; novoAmigo.CodigoSexo = 2; novoAmigo.DataNascimento = new DateTime(1988, 11, 03); // O que caracteriza o padrão é não ter parametros de entrada e método. // A variável já é o proprio registro (Insert = Dado(INFORMAÇÃO)), na mesma classe temos armazenamento de informações e acesso a dados novoAmigo.Add(); }
public void Testar_Classe_Negocio_Amigo_Sucesso() { // A classe que armazenamos os dados (da página) var dadosTela = new AmigoModel { Nome = "Amigo 01", Email = "*****@*****.**", DataNascimento = DateTime.Now, CodigoSexo = 2 }; // A classe de negócio (TM) // O único comando da classe que pode ser publico, é o TEMPLATE METHOD (Etapas) todos os outros tem que ser protegidos só serão visiveis dentro // da classe filha, da classe que herdou! var negocio = new AmigoBusiness(dadosTela); negocio.Executar(); }
// Padrão LAZY LOADING, só levamos os dados quando realmente formos precisar (Tela, Relatorio) public IList <AmigoModel> ListarLazyLoading() { var amigos = new List <AmigoModel>(); for (int i = 1; i <= 10; i++) { var novoAmigo = new AmigoModel(); novoAmigo.Codigo = i; novoAmigo.Nome = "Nome " + i; novoAmigo.Email = "email" + i + "@teste.com"; novoAmigo.CodigoSexo = 1; novoAmigo.CodigoEstadoCivil = 2; amigos.Add(novoAmigo); } return(amigos); }
// Criamos dois métodos para simular o padrão LAZY LOADING. // Quando falamos de carregamento (SELECT, Bucar dados), podemos fazer dois tipos de carregamentos // EAGER LOADING (CARREGAMENTO ANTECIPADO) // Trazemos tudo de uma única vez, mesmo sem precisar. Pedido (Clientes, Itens Pedido, Produto) // LAZY LOADING (CARREGAMENTO TARDIO) // Trazemos de pokinho e pokinho, conforme a necessidade. // 1) Pedidos, // 2) Clientes, // 3) Produtos public IList<AmigoModel> ListarEagerLoading() { var amigos = new List<AmigoModel>(); for (int i = 1; i <= 10; i++) { var novoAmigo = new AmigoModel(); novoAmigo.Codigo = i; novoAmigo.Nome = "Nome " + i; novoAmigo.Email = "email" + i + "@teste.com"; novoAmigo.CodigoSexo = 1; novoAmigo.CodigoEstadoCivil = 2; // EAGER LOADING (Trouzemos tudo junto) novoAmigo.Sexo = new SexoModel { Codigo = 1, Descricao = "Feminino", DataCadastro = DateTime.Now }; novoAmigo.Civil = new EstadoCivilModel { Codigo = 1, Descricao = "Casado(a)", DataCadastro = DateTime.Now }; amigos.Add(novoAmigo); } return amigos; }
public void Testar_Exclusao_Amigo() { var amigoExcluido = new AmigoModel(); amigoExcluido.Codigo = 1; amigoExcluido.Remove(); }
public void Atualizar(AmigoModel modelo_) { // UPDATE TABLE _conexao.Entry(modelo_).State = EntityState.Modified; _conexao.SaveChanges(); }
public void Cadastrar(AmigoModel modelo_) { // INSERT INTO _conexao.Amigos.Add(modelo_); _conexao.SaveChanges(); }
public AmigoBusiness(AmigoModel modelo_) { this._modelo = modelo_; }
// Padrão LAZY LOADING, só levamos os dados quando realmente formos precisar (Tela, Relatorio) public IList<AmigoModel> ListarLazyLoading() { var amigos = new List<AmigoModel>(); for (int i = 1; i <= 10; i++) { var novoAmigo = new AmigoModel(); novoAmigo.Codigo = i; novoAmigo.Nome = "Nome " + i; novoAmigo.Email = "email" + i + "@teste.com"; novoAmigo.CodigoSexo = 1; novoAmigo.CodigoEstadoCivil = 2; amigos.Add(novoAmigo); } return amigos; }