shop notas de implementação [exercício da disciplina de adav]...

12
Shop Notas de implementação [Exercício da Disciplina de ADAV] http://www.dei.isep.ipp.pt/~jtavares/ADAV/downloads/ADAV_Proj_Rreferencia.pdf

Upload: internet

Post on 17-Apr-2015

105 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Shop Notas de implementação [Exercício da Disciplina de ADAV] jtavares/ADAV/downloads/ADAV_Proj_Rreferencia.pdf jtavares/ADAV/downloads/ADAV_Proj_Rreferencia.pdf

ShopNotas de implementação[Exercício da Disciplina de ADAV]http://www.dei.isep.ipp.pt/~jtavares/ADAV/downloads/ADAV_Proj_Rreferencia.pdf

Page 2: Shop Notas de implementação [Exercício da Disciplina de ADAV] jtavares/ADAV/downloads/ADAV_Proj_Rreferencia.pdf jtavares/ADAV/downloads/ADAV_Proj_Rreferencia.pdf

2

Base de Dados - Sales

Page 3: Shop Notas de implementação [Exercício da Disciplina de ADAV] jtavares/ADAV/downloads/ADAV_Proj_Rreferencia.pdf jtavares/ADAV/downloads/ADAV_Proj_Rreferencia.pdf

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);}

Page 4: Shop Notas de implementação [Exercício da Disciplina de ADAV] jtavares/ADAV/downloads/ADAV_Proj_Rreferencia.pdf jtavares/ADAV/downloads/ADAV_Proj_Rreferencia.pdf

4

Page 5: Shop Notas de implementação [Exercício da Disciplina de ADAV] jtavares/ADAV/downloads/ADAV_Proj_Rreferencia.pdf jtavares/ADAV/downloads/ADAV_Proj_Rreferencia.pdf

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);}

Page 6: Shop Notas de implementação [Exercício da Disciplina de ADAV] jtavares/ADAV/downloads/ADAV_Proj_Rreferencia.pdf jtavares/ADAV/downloads/ADAV_Proj_Rreferencia.pdf

6

Page 7: Shop Notas de implementação [Exercício da Disciplina de ADAV] jtavares/ADAV/downloads/ADAV_Proj_Rreferencia.pdf jtavares/ADAV/downloads/ADAV_Proj_Rreferencia.pdf

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 )

Page 8: Shop Notas de implementação [Exercício da Disciplina de ADAV] jtavares/ADAV/downloads/ADAV_Proj_Rreferencia.pdf jtavares/ADAV/downloads/ADAV_Proj_Rreferencia.pdf

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);

}

Page 9: Shop Notas de implementação [Exercício da Disciplina de ADAV] jtavares/ADAV/downloads/ADAV_Proj_Rreferencia.pdf jtavares/ADAV/downloads/ADAV_Proj_Rreferencia.pdf

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;}

Page 10: Shop Notas de implementação [Exercício da Disciplina de ADAV] jtavares/ADAV/downloads/ADAV_Proj_Rreferencia.pdf jtavares/ADAV/downloads/ADAV_Proj_Rreferencia.pdf

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;}

Page 11: Shop Notas de implementação [Exercício da Disciplina de ADAV] jtavares/ADAV/downloads/ADAV_Proj_Rreferencia.pdf jtavares/ADAV/downloads/ADAV_Proj_Rreferencia.pdf

11

Classe Sale

Page 12: Shop Notas de implementação [Exercício da Disciplina de ADAV] jtavares/ADAV/downloads/ADAV_Proj_Rreferencia.pdf jtavares/ADAV/downloads/ADAV_Proj_Rreferencia.pdf

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);}