Post on 17-Apr-2015
ShopNotas de implementação[Exercício da Disciplina de ADAV]http://www.dei.isep.ipp.pt/~jtavares/ADAV/downloads/ADAV_Proj_Rreferencia.pdf
2
Base de Dados - Sales
3
Interfaces Códigos de ‘Status’ – Retorno de alguns métodos
//// Definição dos códigos de ‘status’ que poderão ser retornados//public enum ShopStatusEnum{OK = 1,NOT_OK = 0,INVALID_LOGIN = -1,INVALID_KEY = -2,INVALID_CUSTOMER_ID = -3,INVALID_PRODUCT_ID = -4,INSUFICIENT_STOCK = -5,ERROR = -6}
User
public interface IUser{ShopStatusEnum Validate(string user, string pass);}
4
5
Customer
public interface ICustomer{// devolve os dados do cliente com um dado id DataSet GetByID(string user, string pass, long clientID);
// devolve os dados de todos os clientes cujo nome obedeça ao padrão de pesquisaDataSet FindByName( string user, string pass, string namePattern);
// Adiciona um novo cliente e retorna o respectivo ID gerado automaticamente na BDlong Add( string user, string pass, string name, string address,string phone, string fax,
string email, out ShopStatusEnum status);
// actualiza os dados do cliente identificado pelo idShopStatusEnum Update( string user, string pass, long custumerID, string name,
string address, string phone, string fax, string eMail);}
6
7
Cliente do componente Usar DALC Customer
// página .aspx de pesquisa …using ShopClassLibrary…
string user=…; string pass=…;ICustomer customer=new Customer();// chamada ao método GetByID da classe Customer.csDataSet ds = customer.GetByID(user, pass, idcustomer);// método devolve null se não encontrarIf ( ds!=null )
…
8
DAL Classe Customer.cspublic DataSet GetByID(string user, string pass, long clientID){OleDbConnection conn = null;DataSet ds = null;try{// criar objecto de conexão à base de dados e abrir a conexãoconn = new OleDbConnection(UtilDB.CONN);conn.Open();
// validar utilizadorShopStatusEnum status = UtilDB.ValidateUser(conn, null, user, pass);if (status != ShopStatusEnum.OK)
return null;// efectuar pesquisa
ds = UtilDB.GetByID(conn, null, "Customers", "CustomerID", clientID);
}
9
Classe Customer.cs - GetByID (cont.)catch(OleDbException ex)
{ // tratar a excepção!!!!
System.Console.WriteLine("EXCEPÇÃO no método <GetByID> da classe 'Customer': " + ex.Message);
}finally{// fechar a conexão
if (conn.State == ConnectionState.Open)conn.Close();
}
return ds;}
10
Classe UtilDB.csstatic public DataSet GetByID (OleDbConnection conn, OleDbTransaction tx, string
table, string keyName, long key){ DataSet ds = null;
try{ // criar objecto DataSetds = new DataSet();// criar um Datadapter para executar o comando e devolver o datasetstring sSqlCmd = "Select * From "+ table + " Where "+ keyName + " = "+
key.ToString();OleDbDataAdapter oAdapter = new OleDbDataAdapter(sSqlCmd, conn);oAdapter.SelectCommand.Transaction = tx;// executar o comando e preencher um DatasetoAdapter.Fill(ds, table);}catch(OleDbException ex){// tratar a excepção!!!!System.Console.WriteLine("EXCEPÇÃO no método 'UtilDB.GetByID': " +
ex.Message);ds = null;}return ds;}
11
Classe Sale
12
public class User : IUser
{
…
public ShopStatusEnum Validate(string user, string pass)
{
return UtilDB.ValidateUser(user, pass);
}
…
// validar Login
IUser c = new User();
if (c.Validate(txtUsername.Text, txtPassword.Text) == ShopStatusEnum.OK)
public interface IUser{ShopStatusEnum Validate(string user, string pass);}