Este artigo é a quarta parte do projeto Loja em C#.Net, e agora iremos implementar a camada de regras de negócio:
- Primeira parte, a criação da base de dados em SQL Server;
- Segunda parte, a criação do projeto modelo;
- Terceira parte, a criação do projeto de acesso a dados.
Criando o Projeto BLL no Visual Studio
Abra o Visual
Studio, e abra seu projeto DAL, clique com o botão direito em Solution
Model, depois em Add, clique em New Project, conforme a figura a
seguir:
Na janela New Project, no lado esquerdo, expanda Templates, depois Visual C#, e clique em Windows. No lado direito escolha Class Library, dê o nome de BLL, dê OK. Obs: Não crie o projeto no mesmo caminho que o Projeto Model. Veja a figura a seguir:
O Solution Explorer ficará conforme a figura a seguir:
O projeto BLL precisa reutilizar tudo que criamos no projeto Model e DAL, e isso é possível adicionando uma referência, expanda References, clique com o botão direito e escolha Add Reference, conforme a figura a seguir:
A janela Reference Manager será aberta, do lado esquerdo, expanda Solution e clique em Projects. Do lado direito aparecerá os projetos, marque a caixa de seleção referente ao projeto Model, e clique em OK. Veja a figura a seguir:
Agora está tudo pronto para implementarmos as classes de regras de negócio. Clique com o botão direito em Class1.cs e clique em Rename, dê o nome de ClientesBLL. Abra a classe ClientesBLL.cs, altere o namespace para Loja.DAL, adicione as cláusulas using Loja.Model e using Loa.DAL, conforme a figura a seguir:
A classe ClientesBLL.cs está pronta para ser implementada começando pelo método incluir, copie o código a seguir:
public void incluir(ClienteInformation cliente)
{
//O nome do cliente é obrigatório
if (cliente.Nome.Trim().Length == 0)
{
throw new Exception("O nome do cliente é obrigatório");
}
//O email é sempre em letras minusculas
cliente.Email = cliente.Email.ToLower();
//Se tudo está ok, chama a rotina de inserção.
ClientesDAL obj = new ClientesDAL();
obj.incluir(cliente);
}
Próximo método é o alterar:
public void alterar(ClienteInformation cliente)
{
//O nome do cliente é obrigatório
if (cliente.Nome.Trim().Length == 0)
{
throw new Exception("O nome do cliente é obrigatório");
}
//O email é sempre em letras minusculas
cliente.Email = cliente.Email.ToLower();
//Se tudo está ok, chama a rotina de inserção.
ClientesDAL obj = new ClientesDAL();
obj.alterar(cliente);
}
Próximo método é o excluir:
public void excluir(int codigo)
{
if (codigo < 1)
{
throw new Exception("Selecione um cliente antes de excluí-lo.");
}
ClientesDAL obj = new ClientesDAL();
obj.excluir(codigo);
}
Próximo método é o listagem:
public DataTable Listagem(string filtro)
{
ClientesDAL obj = new ClientesDAL();
return obj.Listagem(filtro);
}
A classe ClientesBLL.cs está pronta, se houver algum erro reveja os passos.
Agora iremos criar a próxima classe, clique com o botão direito no projeto BLL, vá a Add, e clique em Class.., dê o nome de ProdutosBLL e clique em Add.
Adicione as cláusulas using Loja.Model e using Loja.DAL, altere o namespace para Loja.BLL.
A classe ProdutosBLL está pronta para ser implementada, e começamos com o método ProdutosEmFalta, copie o código a seguir:
public ArrayList ProdutosEmFalta()
{
ProdutosDAL obj = new ProdutosDAL();
return obj.ProdutosEmFalta();
}
Próximo método é o incluir:
public void incluir(ProdutoInformation produto)
{
//Nome do produto é obrigatório
if (produto.Nome.Trim().Length == 0)
{
throw new Exception("nome do produto é obrigatório.");
}
//O preço do produto não pode ser negativo
if (produto.Preco < 0)
{
throw new Exception("O preço do produto não pode ser negativo.");
}
//O estoque do produto não pode ser negativo
if (produto.Estoque < 0)
{
throw new Exception("Estoque do produto não pode ser negativo.");
}
//Se tudo estiver ok, chama a rotina de gravaçao
ProdutosDAL obj = new ProdutosDAL();
obj.incluir(produto);
}
Próximo método é o alterar:
public void alterar(ProdutoInformation produto)
{
//Nome do produto é obrigatório
if (produto.Nome.Trim().Length == 0)
{
throw new Exception("nome do produto é obrigatório.");
}
//O preço do produto não pode ser negativo
if (produto.Preco < 0)
{
throw new Exception("O preço do produto não pode ser negativo.");
}
//O estoque do produto não pode ser negativo
if (produto.Estoque < 0)
{
throw new Exception("Estoque do produto não pode ser negativo.");
}
//Se tudo estiver ok, chama a rotina de gravaçao
ProdutosDAL obj = new ProdutosDAL();
obj.alterar(produto);
}
Próximo método é o excluir:
public void excluir(int codigo)
{
ProdutosDAL obj = new ProdutosDAL();
obj.excluir(codigo);
}
Próximo método é o listagem:
public DataTable listagem(string filtro)
{
ProdutosDAL obj = new ProdutosDAL();
return obj.listagem(filtro);
}
A classe ProdutosBLL.cs está pronta, se houver algum erro reveja os passos.
Agora iremos criar a próxima classe, clique com o botão direito no projeto BLL, vá a Add, e clique em Class.., dê o nome de VendasBLL e clique em Add.
Adicione as cláusulas using Loja.Model e using Loja.DAL, altere o namespace para Loja.BLL e adicione a palavra reservada public, igual foi feito na classe ClientesBLL.cs e ProdutosBLL.cs.
A classe VendasBLL está pronta para ser implementada, e vamos adicionar uma variável privada para armazenar uma instância da classe DAL, copie o código a seguir:
//Campo privado para armazenar uma instância da classe DAL
private VendasDAL objDAL;
Próximo passo é implementar o método construtor:
//Esse é o construtor da classe VendasBLL
public VendasBLL()
{
objDAL = new VendasDAL();
}
Próximo método é o ListaDeProdutos:
public DataTable ListaDeProdutos
{
get
{
return objDAL.ListaDeProdutos;
}
}
Próximo método é o ListaDeClientes:
public DataTable ListaDeClientes
{
get
{
return objDAL.ListaDeClientes;
}
}
Próximo método é o incluir:
public void incluir(VendaInformation venda)
{
objDAL.incluir(venda);
}
Agora a classe VendasBLL está pronta, vá ao Solution Explorer, clique com o botão direito em BLL, e clique em Build. O visual Studio irá compilar a solução.
Próximo passo é criar o projeto UIWindows que contém os formulários, até mais.