Documente Academic
Documente Profesional
Documente Cultură
Alfenas-MG
2011
Alfenas-MG
2011
Orientador:
Prof. Celso de vila Ramos
Universidade Jos do Rosrio Vellano
_____________________
Assinatura
_____________________
Assinatura
_____________________
Assinatura
Alfenas-MG
2011
SUMRIO
1 INTRODUO.........................................................................................................10
1.1 Justificativa: origem e importncia do trabalho...........................................10
1.2 Caracterizao do problema em estudo.......................................................10
1.3 Objetivo.............................................................................................................11
1.4 Organizao do trabalho.................................................................................11
2 REFERENCIAL TERICO......................................................................................12
2.1 Engenharia de software..................................................................................12
2.1.1 Processo.........................................................................................................12
2.1.2 Mtodos..........................................................................................................13
2.1.3 Ferramentas....................................................................................................13
2.2 Desenvolvimento gil......................................................................................13
2.2.1 Extreme Programming (XP)............................................................................14
2.2.1.1 Planejamento...............................................................................................15
2.2.1.2 Projeto..........................................................................................................16
2.2.1.3 Codificao..................................................................................................16
2.2.1.4 Teste.............................................................................................................17
2.3 TDD (Test Driven Development).....................................................................17
2.4 Carona com tecnologia...................................................................................19
3 MATERIAL E MTODOS.........................................................................................20
4 DESENVOLVIMENTO............................................................................................22
4.1 Camada de Testes e Mtodos.........................................................................22
5 RESULTADOS E DISCUSSO...............................................................................33
6 CONCLUSO..........................................................................................................34
7 CONSIDERAES FINAIS.....................................................................................35
8 REFERNCIAS........................................................................................................36
APNDICE A CDIGOS E TELAS DA INTERFASE.............................................37
APNDICE B CDIGOS DAS CLASSES..............................................................85
APNDICE C - DICIONRIO DE DADOS...............................................................112
APNDICE D - DESCRIO DOS CASOS DE USO..............................................114
APNDICE E - DIAGRAMA DE CASO DE USO.....................................................122
APNDICE F - MODELO ER...................................................................................124
APNDICE G - DIAGRAMA DE CLASSE E TABELAS..........................................125
LISTA DE FIGURAS
LISTA DE TABELAS
RESUMO
ABSTRACT
With high demand, the software market raises some questions, the main one
is if the product sold is reliable. Therefore, tests are essential to build quality
software. One of the most requested is the Test Driven Development (TDD). It should
be borne in mind that TDD tests should be automated unit testing where
requirements are defined before the code created. For this, the developer must have
knowledge about the problem and know test it properly. TDD is based on a short
cycle of repetitions where you write code that will serve to improve the functioning of
which will be tested or even add a new function. Then, the program code in question
will be raised to 'test' these routines. When the tests are validated, then the code is
refactored to avoid unnecessary code duplication. These tests will be demonstrated
in a system built with the concepts of agile development, this being a "software of
ride." How people have access to universities, schools, businesses, and other places
have problems with transit to get to work due to excessive vehicle or lack of it. One
way to solve this problem, would be the communication among people, whether or
not of the different locations and having the task of offering or hitchhiking, following
this concept would be a convenient, fast and quite feasible for a mobile community
with a view to reduce traffic and vehicle flow in industrial and urban perimeters. That
said, this project aims to show the importance of testing to ensure quality, low cost
and gain in time and performance through the use of TDD. Such tests will be
demonstrated and practiced through a software 'Ride' system (responsible for
registering people who can provide and need to ride beyond their routes and other
conditions).
Keywords: TDD. Ride. Refactoring.
10
1 INTRODUO
11
1.3 Objetivo
Este projeto tem por objetivo mostrar a importncia de testes para garantir
qualidade, baixos custos e ganho em tempo e em desempenho por meio do uso de
TDD.
Tais testes sero demonstrados e praticados atravs de um software de
carona. O sistema ser responsvel por cadastrar pessoas que podem oferecer e
necessitar de carona, alm de suas rotas e outras condies.
Uma
12
2 REFERENCIAL TERICO
2.1.1 Processo
13
2.1.2 Mtodos
2.1.3 Ferramentas
nos
softwares
convencionalmente
usados.
Podem
fornecer
14
software foram propostos nos ltimos anos. Esses modelos de processo gil
enfatizam a manobrabilidade e a adaptabilidade. Eles so adequados a muitos tipos
de projetos e so particularmente teis quando aplicaes web passam por
engenharia.
Nos dias atuais frequente, difcil ou impossvel prever como um sistema
baseado em computador evoluir com o passar do tempo. Com um mercado de
software nessa estabilidade, os engenheiros de software devem ser suficientemente
geis para responder a um ambiente de negcios mutantes.
De acordo com Pressman (2010, p.59), Jacobson [Jac02]Agilidade tornou-se
atualmente uma palavra mgica quando se descreve um processo moderno de
software. Tudo gil. [...]. Ela idealiza a rpida entrega do software operacional, d
menos importncia para produtos de trabalho intermedirios, adota os clientes como
parte da equipe de desenvolvimento e trabalha para eliminar a atitude ns e eles,
que tende a permanecer em muitos projetos de software.
15
2.2.1.1 Planejamento
Planejamento a criao de um conjunto de histrias que descreve as
caractersticas e as funcionalidades requeridas para o software a ser construdo. O
cliente estabelece um conjunto de problemas a ser resolvido e os membros da
equipe XP estabelecem um prazo medido em semanas para resolver este conjunto
de problemas. Se o conjunto de problemas demorar mais que trs semanas, os
membros da equipe solicitam ao cliente que divida o conjunto de problemas em
partes. importante notar que novos conjuntos de problemas podem ser escritos.
Os clientes e a equipe XP trabalham juntos para decidir como agrupar os
conjuntos de problemas na verso seguinte a ser desenvolvida pela equipe XP. Uma
vez feito um compromisso bsico para nova verso a ser desenvolvida, define-se
por qual dos trs modos ser desenvolvido o conjunto de problemas.
16
2.2.1.2 Projeto
2.2.1.3 Codificao
17
2.2.1.4 Teste
O Desenvolvimento Dirigido por Testes (TDD) tem por idealizador Kent Beck.
Uma das diferenas entre TDD em relao a outros mtodos que com TDD o
desenvolvedor vai evoluindo seu cdigo aos poucos, conforme explora o problema,
com o uso de testes automatizados escritos antes da soluo sequer existir.
De acordo com Beck (2003), [...] uma abordagem evolutiva para o
desenvolvimento que combina teste anterior de desenvolvimento, onde voc escreve
um teste antes de escrever cdigo de produo apenas o suficiente para cumprir
esse teste e a refatorao.
18
19
importante lembrar tambm que, como o teste inicial foi feito sem o cdigo,
dever ser modificado para melhor atender ao funcionamento de um programa em
geral. Por isso, deve-se ter em mente que, para projetar um teste de alto nvel, o
programador precisa ter conhecimento sobre o assunto e principalmente saber como
test-lo e test-lo de forma efetiva, que d resultados. Segundo Reis (2011, p.85),
"Voc s deve escrever um programa se voc souber como test-lo."
Outro ponto importante em TDD no ficar preso ao mesmo teste por muito
tempo. Deve-se tentar resolv-lo de forma rpida. Caso no consiga test-lo
rapidamente no se deve ficar preso a este teste, mas sim iniciar outro meio de
como fazer o mesmo teste, para que o mesmo seja feito, testado e, se houver
resultados positivos, refator-lo futuramente. Caso no haja melhoria, deve-se
simplesmente voltar verso anterior do projeto, que j passou por todas as etapas,
foi refatorado e ento voltou a ser testado, e continue a partir dele. Dessa forma, no
h perda de tempo com depurao.
Vale acrescentar que tempo no perdido com testes. Na verdade, quando o
assunto a ser testado conhecido pelo programador e os testes so bem
desenvolvidos, muito tempo poupado na parte de programao.
20
3 MATERIAL E MTODOS
da aplicao;
Arquitetura Orientada a Objetos: baseada na composio e interao entre
armazenar, manipular
recuperar
dados
estruturados
21
4 DESENVOLVIMENTO
22
Todos os testes foram gerados pelo uso de TDD e aplicados neste projeto,
sendo executados na ferramenta de desenvolvimento Visual Studio Team System
2010 e utilizando a biblioteca Microsoft.VisualStudio.TestTools.UnitTesting.
TDD implica em testes que sero executados antes que o cdigo seja gerado
e que novos testes sejam aplicados medida que o cdigo evolua. Por esse motivo,
testes foram aplicados antes mesmo que a interface fosse criada. Este um ponto
importante, porque testes existem para encontrar erros antes da implementao de
interfaces.
Com o TDD, foram criados testes que seriam necessrios para o bom
desenvolvimento do sistema em questo, sendo este sistema codificado em
concordncia aos testes j criados inicialmente. Conforme avanava na codificao,
apareciam novos testes para serem criados. Como as etapas do TDD exigem que
para cada teste criado um mtodo seja implementado, para verificar o determinado
teste, deve-se faz-lo passar de forma rpida, se necessrio, e ento o mtodo
refatorado. Depois dessa etapa, o cdigo principal documentado, informando onde
ser necessrio utilizar aquele mtodo.
Depois de todos os mtodos criados disparada a rotina de testes para
verificar se um mtodo no atrapalha o outro, sendo feito ento o teste de
componente. Havendo algum erro, o mtodo em questo refatorado. A Figura 4
demonstra uma falha de teste na rotina, que valida a data.
23
Este teste chama o mtodo Valida_Data, passando para ele uma data
qualquer como parmetro.
Mtodo Valida_Data:
24
O mtodo recebe como parmetro uma data e verifica se maior que a data
do sistema; tambm verifica a quantidade de dias por ms, a quantidade de meses
por ano e se o ano bissexto ou no.
Se for inserida uma data maior ou igual data do sistema, a rotina de teste
no apresentar mais o erro gerado. Observe o exemplo na Figura 5, inserindo a
data 29/10/2011, sendo que a data atual do sistema de 28/10/2011.
25
Abaixo ser demonstrada toda a classe de teste e seus mtodos, tendo como
principal finalidade a verificao de dados digitados pelo usurio e dados a serem
inseridos no banco de dados:
Library Carona_Teste com a Classe Pessoa_Teste, onde esto todos os
testes que verificam o cadastro e a alterao de pessoas no sistema:
using
using
using
using
using
using
System;
System.Text;
System.Collections.Generic;
System.Linq;
Microsoft.VisualStudio.TestTools.UnitTesting;
Carona_Metodos_Testes;
namespace Carona_Teste
{
[TestClass]
public class Pessoa_Teste
{
Pessoa_Metodos Pessoa = new Pessoa_Metodos();//Estancia o objeto Pessoa
//TESTE QUE TESTA SE A MATRICULA INICIA COM 0 E SE CONTEM 9 NUMEROS
[TestMethod]
public void Testa_Matricula()
{
string mat = "123456789";
//variavel que recebe uma string com uma matricula para testar
Pessoa.recebe_Matricula(mat);//objeto pessoa
Assert.IsNotNull(Pessoa);
//Testa se o objeto no nulo
Assert.IsTrue(Pessoa.Mede_Matricula());
//Testa se a matricula contem 9 digitos
Assert.IsTrue(Pessoa.Confere_Inicio_Matricula_Igual_0());
//Testa se a matricula inicia com 0
}
//TESTE QUE TESTA SE O CPF VALIDO
[TestMethod]
public void Testa_Cpf()
{
string cpf = "000.000.000-00";
//variavel que recebe uma string com um cpf para testar
Assert.IsNotNull(Pessoa);//Testa se o objeto no nulo
Assert.IsTrue(Pessoa.Valida_CPF(cpf));//Testa se o Cpf existente
}
//TESTE QUE TESTA SE EXISTE ALGUM CPF IGUAL CADASTRADO
[TestMethod]
public void Testa_Igualdade_Cpf()
{
string cpf = "000.000.000-00";
//variavel que recebe uma string com um cpf para testar
Assert.IsNotNull(Pessoa);//Testa se o objeto no nulo
Assert.IsTrue(Pessoa.Valida_Cpf_Igual(cpf));
//Testa se o Cpf igual a outro existente na base de dados
}
26
using
using
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
Carona_ENT;
System.Data.SqlClient;
System.Data;
namespace Carona_Metodos_Testes
{
public class Pessoa_Metodos
{
string mat;//variavel global para testar os metodos
Util conexao = new Util();
//Metodo que insere uma matricula na variavel globa para testar os metodos
public void recebe_Matricula(string recev)
{
mat=recev;
}
//Metodo que conta se h os 9 digitos obrigatorios da matricula
//testado na camada Carona_Teste
public bool Mede_Matricula()
{
bool teste=true;
int i;
i = mat.Length;
if (i != 9)
teste = false;
return teste;
27
}
//Metodo que retorna o inicio matricula
//testado na camada Carona_Teste
public bool Confere_Inicio_Matricula_Igual_0()
{
bool teste = true;
if (int.Parse(mat[0].ToString()) == 0)
teste = false;
return teste;
}
//Metodo que valida o Cpf
//testado na camada Carona_Teste
public bool Valida_CPF(string cpf)
{
int[] multiplicador1 = new int[9] { 10, 9, 8, 7, 6, 5, 4, 3, 2 };
int[] multiplicador2 = new int[10] { 11, 10, 9, 8, 7, 6, 5, 4, 3, 2 };
string tempCpf;
string digito;
int soma;
int resto;
cpf = cpf.Trim();
cpf = cpf.Replace(".", "").Replace("-", "");
if (cpf.Length != 11)
return false;
tempCpf = cpf.Substring(0, 9);
soma = 0;
for (int i = 0; i < 9; i++)
soma += int.Parse(tempCpf[i].ToString()) * multiplicador1[i];
resto = soma % 11;
resto = Resto(resto);
digito = resto.ToString();
tempCpf = tempCpf + digito;
soma = 0;
for (int i = 0; i < 10; i++)
soma += int.Parse(tempCpf[i].ToString()) * multiplicador2[i];
resto = soma % 11;
if (resto < 2)
resto = 0;
else
resto = 11 - resto;
digito = digito + resto.ToString();
return cpf.EndsWith(digito);
}
private static int Resto(int resto)
{
if (resto < 2)
resto = 0;
else
resto = 11 - resto;
28
return resto;
}
";
//Metodo que verifica se existe algum cpf existente na base de dados para no
duplicar dois usuarios com cpfs iguais
//testado na camada Carona_Teste
public bool Valida_Cpf_Igual(string Cpf)
{
bool teste = true;
SqlConnection _conn = new SqlConnection("Data Source=localhost\\
SQLEXPRESS;Initial Catalog=Carona_TCC;Integrated Security=True");
SqlCommand command = new SqlCommand();
_conn.Open();
command.Connection = _conn;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "[sp_Consulta_Cpf_Igual]
command.Parameters.AddWithValue("@cpf_Pessoa",
SqlDbType.VarChar).Value = Cpf;
SqlDataReader dr = command.ExecuteReader();
if (dr.HasRows)
teste = false;
return teste;
}
//Metodo que valida data se ano bisexto e se um respectivo
mes tem 31,30,29 ou 28 dias
//testado na camada Carona_Teste
public bool Valida_Data(string _data)
{
int _dia = int.Parse(_data.Substring(0, 2));
int _mes = int.Parse(_data.Substring(3, 2));
int _ano = int.Parse(_data.Substring(6, 4));
bool teste = true;
if ((((_ano - 1900) % 4) != 0) && (_mes == 2) || (_dia > 29))
{ teste = false; }
if (((_mes == 01) || (_mes == 03) || (_mes == 05) || (_mes == 07) ||
(_mes == 08) || (_mes == 10) || (_mes == 12)) && (_dia > 31))
{ teste = false; }
if (((_mes == 04) || (_mes == 06) || (_mes == 09) || (_mes == 11))
&& (_dia > 30))
{ teste = false; }
if ((_mes > 12) || (_dia > 31) || (_dia < 1) || (_mes < 1) ||
(_ano < 1900))
{ teste = false; }
return teste;
}
//Metodo que verifica se existe alguma matricula existente na base de dados
para no duplicar dois usuarios com matriculas iguais
//testado na camada Carona_Teste
public bool Valida_Matricula_Igual(string Matricula)
{
bool teste = true;
SqlConnection _conn = new SqlConnection("Data Source=localhost\\
SQLEXPRESS;Initial Catalog=Carona_TCC;Integrated Security=True");
SqlCommand command = new SqlCommand();
29
_conn.Open();
command.Connection = _conn;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "[sp_Consulta_Matricula_Igual]
";
command.Parameters.AddWithValue("@matricula",
SqlDbType.VarChar).Value = Matricula;
SqlDataReader dr = command.ExecuteReader();
if (dr.HasRows)
teste = false;
return teste;
}
using
using
using
using
using
using
System;
System.Text;
System.Collections.Generic;
System.Linq;
Microsoft.VisualStudio.TestTools.UnitTesting;
Carona_Metodos_Testes;
namespace Carona_Teste
{
[TestClass]
public class Rota_Teste
{
Rota_Metodos objRota = new Rota_Metodos();
//TESTE QUE TESTA SE O NUMERO DE VAGAS NA CARONA COMPATIVEL
COM TIPO DE VEICULO
[TestMethod]
public void Teste_Tipo_Veiculo()
{
string _carro = "Passeio";
//variavel que recebe uma string com um tipo de carro para testar
int _quant = 1;
//variavel que recebe uma quantidade de passageiros para testar
Assert.IsNotNull(objRota);//Testa se o objeto no nulo
Assert.IsTrue(objRota.Quant_por_Veiculo(_carro, _quant));
}
//TESTE QUE TESTA SE A DATA DA CARONA MAIOR OU IGUAL QUE A
DA DATA CADASTRADA
[TestMethod]
public void Teste_Data()
{
string _data = "01/12/2011";
//variavel que recebe uma string com uma data para testar
Assert.IsNotNull(objRota);//Testa se o objeto no nulo
Assert.IsTrue(objRota.Valida_Data(_data));
//Testa se a data da carona maior que a data cadastrada
}
30
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
namespace Carona_Metodos_Testes
{
public class Rota_Metodos
{
//Metodo que verifica a quantidade maxima e minima de
vagas de carona por veiculo
//testado na camada Carona_Teste
public bool Quant_por_Veiculo(string tipoCar, int quant)
{
bool teste = false;
if ((tipoCar == "nibus") && (quant <= 48) && (quant > 0))
{ teste = true; }
if ((tipoCar == "Van") && (quant <= 17) && (quant > 0))
{ teste = true; }
if ((tipoCar == "Passeio") && (quant <= 7) && (quant > 0))
{ teste = true; }
if ((tipoCar == "Camioneta") && (quant <= 5) && (quant > 0))
{ teste = true; }
31
return teste;
return teste;
//Metodo que valida se a data de saida da carona menor que a data de chegada
//testado na camada Carona_Teste
public bool Valida_HoraComData(DateTime _Data_Saida, DateTime _Data_Chegada)
32
{
bool teste = false;
if (_Data_Saida <_Data_Chegada)
{
teste = true;
}
return teste;
}
5 RESULTADOS E DISCUSSO
33
6 CONCLUSO
34
7 CONSIDERAES FINAIS
35
8 REFERNCIAS
36
37
System;
System.Collections.Generic;
System.Linq;
System.Web;
System.Web.UI;
System.Web.UI.WebControls;
Carona_BLL;
Carona_ENT;
Carona_DAL;
System.Data;
System.Data.SqlClient;
Carona_Metodos_Testes;
namespace Exemplo_TCC_web.Views
{
public partial class Login : System.Web.UI.Page
{
Util conexao = new Util();
protected void Page_Load(object sender, EventArgs e)
{
Session["id"] = null;
}
protected void Button1_Click(object sender, EventArgs e)
{
38
Contato
39
using
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Web;
System.Web.UI;
System.Web.UI.WebControls;
namespace Sistema_de_Carona_1._0.Views.Help
{
public partial class Contato : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
Help
40
using
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Web;
System.Web.UI;
System.Web.UI.WebControls;
namespace Sistema_de_Carona_1._0.Views.Help
{
public partial class Help : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
Home
41
using
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Web;
System.Web.UI;
System.Web.UI.WebControls;
namespace Sistema_de_Carona_TCC
{
public partial class Home : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
Cadastrar Pessoa
42
using
using
using
using
using
using
using
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Web;
System.Web.UI;
System.Web.UI.WebControls;
Carona_BLL;
Carona_DAL;
Carona_ENT;
System.Data;
System.Data.SqlClient;
Carona_Metodos_Testes;
namespace Sistema_de_Carona_TCC.Views.Registers
{
public partial class Cadastrar : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Session["id"] = null;
}
protected void ddlEstado_SelectedIndexChanged(object sender, EventArgs e)
43
{
try
{
Cidade_BLL objCidade_BLL = new Cidade_BLL();
Cidade objCidade_ENT = new Cidade();
SqlDataReader dr;
List<Cidade> Lista = new List<Cidade>();
objCidade_ENT.Estado = ddlUF.SelectedValue.ToString();
dr = objCidade_BLL.Consulta_Cidade(objCidade_ENT);
if (dr.HasRows)
{
while (dr.Read())
{
Cidade estado = new Cidade();
estado.IdCidade = Convert.ToInt32(dr["id_Cidade"].ToString());
estado.NomeCidade = dr["nome_Cidade"].ToString();
Lista.Add(estado);
}
ddlCidade.DataTextField = "NomeCidade";
ddlCidade.DataValueField = "IdCidade";
ddlCidade.DataSource = Lista;
ddlCidade.DataBind();
}
}
catch (Exception)
{
throw;
}
}
protected void btnCadastrar_Click(object sender, EventArgs e)
{
Pessoa_Metodos _MT = new Pessoa_Metodos();
bool valida = true;
if (_MT.Valida_CPF(txtCPF.Text) == false)
{
valida = false;
txtCPF.Text = "";
txtCPF.BorderColor = System.Drawing.Color.Red;
}
if (_MT.Valida_Cpf_Igual(txtCPF.Text) == false)
{
valida = false;
txtCPF.Text = "";
txtCPF.BorderColor = System.Drawing.Color.Red;
}
if (_MT.Valida_Data(txtDtNascimento.Text) == false)
{
valida = false;
txtDtNascimento.Text = "";
txtDtNascimento.BorderColor = System.Drawing.Color.Red;
}
_MT.recebe_Matricula(txtMatricula.Text);
if (_MT.Mede_Matricula() == false)
{
valida = false;
txtMatricula.Text = "";
44
txtMatricula.BorderColor = System.Drawing.Color.Red;
}
if (_MT.Valida_Matricula_Igual() == false)
{
valida = false;
txtMatricula.Text = "";
txtMatricula.BorderColor = System.Drawing.Color.Red;
}
if (_MT.Confere_Inicio_Matricula_Igual_0() == false)
{
valida = false;
txtMatricula.Text = "";
txtMatricula.BorderColor = System.Drawing.Color.Red;
}
if (valida == false)
{
string Messagem = @" Por favor, verifique os dados preenchidos
nos campos marcados de vermelho\n ";
ScriptManager.RegisterStartupScript(Page, this.GetType(), "alert",
string.Format("alert('{0}');", Messagem), true);
}
else
{
Pessoa objPessoa = new Pessoa
{
Bairro = txtBairro.Text.ToUpper(),
Complemento = txtComplemento.Text.ToUpper(),
//Metodo Valida_CPF localizado na library Carona_Metodos_Teste na
classe Pessoa_Metodos
Cpf = txtCPF.Text,
//Metodo Valida_Data localizado na library Carona_Metodos_Teste na
classe Pessoa_Metodos
DataNascimento = Convert.ToDateTime(txtDtNascimento.Text),
Email = txtEmail.Text,
Foto = "",
Fumante = rbtFumante.SelectedItem.Value.ToString(),
IdCidade = int.Parse(ddlCidade.SelectedValue),
//Metodo mede_matricula localizado na library Carona_Metodos_Teste na
classe Pessoa_Metodos
//Metodo Confere_Inicio_Matricula_Igual_0 localizado na library
Carona_Metodos_Teste na classe Pessoa_Metodos
Matricula = txtMatricula.Text.ToUpper(),
Nome = txtNome.Text.ToUpper(),
Numero = txtNumero.Text.ToUpper(),
Rg = txtRG.Text.ToUpper(),
Rua = txtRua.Text.ToUpper(),
Senha = txtSenha.Text.ToUpper(),
Sexo = ddlSexo.SelectedValue.ToString(),
TelCel = mskTelefoneCelular.Text.ToUpper(),
TelCom = mskTelefoneComercial.Text.ToUpper(),
TelFixo = mskTelefoneResidencial.Text.ToUpper(),
PotadorPessoa = rbtPortador.SelectedValue.ToString()
};
Pessoa_BLL pessoa = new Pessoa_BLL();
objPessoa.IdPessoa = pessoa.Insere_Pessoa(objPessoa);
string Messagem = @"Cadastrado com Sucesso!!!";
ScriptManager.RegisterStartupScript(Page, this.GetType(), "alert",
string.Format("alert('{0}');", Messagem), true);
Session["id"] = objPessoa.IdPessoa; ;
45
Response.Redirect("~/Home.aspx");
}
}
protected void ddlUFCaroneiro_SelectedIndexChanged1(object sender, EventArgs e)
{
try
{
Cidade_BLL objCidade_BLL = new Cidade_BLL();
Cidade objCidade_ENT = new Cidade();
SqlDataReader dr;
List<Cidade> Lista = new List<Cidade>();
objCidade_ENT.Estado = ddlUF.SelectedValue.ToString();
dr = objCidade_BLL.Consulta_Cidade(objCidade_ENT);
if (dr.HasRows)
{
while (dr.Read())
{
Cidade estado = new Cidade();
estado.IdCidade = Convert.ToInt32(dr["id_Cidade"].ToString());
estado.NomeCidade = dr["nome_Cidade"].ToString();
Lista.Add(estado);
}
ddlCidade.DataTextField = "NomeCidade";
ddlCidade.DataValueField = "IdCidade";
ddlCidade.DataSource = Lista;
ddlCidade.DataBind();
}
}
}
}
catch (Exception)
{
throw;
}
Cadastrar Rota
46
47
48
using
using
using
using
using
using
using
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Web;
System.Web.UI;
System.Web.UI.WebControls;
Carona_BLL;
Carona_DAL;
Carona_ENT;
System.Data;
System.Data.SqlClient;
Carona_Metodos_Testes;
namespace Sistema_de_Carona_TCC.Views.Registers
{
public partial class CadastrarRota : System.Web.UI.Page
{
static int id_Pessoa;
static string tipo, tipo_Rota;
49
50
dr = objCidade_BLL.Consulta_Cidade(objCidade_ENT);
if (dr.HasRows)
{
while (dr.Read())
{
Cidade estado = new Cidade();
estado.IdCidade = Convert.ToInt32(dr["id_Cidade"].ToString());
estado.NomeCidade = dr["nome_Cidade"].ToString();
Lista.Add(estado);
}
ddlCidadeFinal.DataTextField = "NomeCidade";
ddlCidadeFinal.DataValueField = "IdCidade";
ddlCidadeFinal.DataSource = Lista;
ddlCidadeFinal.DataBind();
}
}
catch (Exception)
{
throw;
}
51
txtHoraSaida.BorderColor = System.Drawing.Color.Red;
}
if ((Rota.Valida_Hora(txtHoraChegada.Text) == false))
{
valida = false;
txtHoraChegada.Text = "";
txtHoraChegada.BorderColor = System.Drawing.Color.Red;
}
if (Rota.Valida_HoraComData(DateTime.Parse(txtDataSaida.Text + " " +
txtHoraSaida.Text), DateTime.Parse(txtDataChegada.Text + " " +
txtHoraChegada.Text)) == false)
{
valida = false;
txtDataSaida.Text = "";
txtDataChegada.Text = "";
txtHoraSaida.Text = "";
txtHoraChegada.Text = "";
txtDataSaida.BorderColor = System.Drawing.Color.Red;
txtDataChegada.BorderColor = System.Drawing.Color.Red;
txtHoraSaida.BorderColor = System.Drawing.Color.Red;
txtHoraChegada.BorderColor = System.Drawing.Color.Red;
}
if (valida==false)
{
string Messagem = @" Por favor, verifique os dados preenchidos nos
campos marcados de vermelho\n ";
ScriptManager.RegisterStartupScript(Page, this.GetType(), "alert",
string.Format("alert('{0}');", Messagem), true);
}
else
{
Rota objRota = new Rota
{
IdPessoa = id_Pessoa,
IdCidadeInicial = int.Parse(ddlCidadeInicial.SelectedValue),
IdCidadeFinal = int.Parse(ddlCidadeFinal.SelectedValue),
//Metodo que valida se a hora da carona maior ou igual que a do dia
cadastrada localizado na library Carona_Metodos_Teste na classe
Rota_Metodos
HoraSaida = DateTime.Parse(txtHoraSaida.Text),
HoraChegada = DateTime.Parse(txtHoraChegada.Text),
//Metodo que valida se a data da carona maior ou igual que a do dia
cadastrada localizado na library Carona_Metodos_Teste na classe
Rota_Metodos
//Metodo que valida se a data de saida da carona menor que a data de
chegada localizado na library Carona_Metodos_Teste na classe
Rota_Metodos
DataSaida = DateTime.Parse(txtDataSaida.Text),
DataGhegada = DateTime.Parse(txtDataChegada.Text),
TipoViagem = ddlTipoViagem.SelectedValue,
BairroSaida = txtBairroSaida.Text,
BairroChegada = txtBairroChegada.Text,
TipoRota = tipo_Rota
};
if (tipo_Rota == "Oferecendo")
{
if ((Rota.Quant_por_Veiculo(ddlTipoVeiculo.SelectedValue,
int.Parse(txtVagas.Text))) == false)
{
valida = false;
52
txtVagas.Text = "";
ddlTipoVeiculo.BorderColor = System.Drawing.Color.Red;
txtVagas.BorderColor = System.Drawing.Color.Red;
}
if (valida==false)
{
string Messagem = @" Por favor, verifique os dados preenchidos nos
campos marcados de vermelho\n ";
ScriptManager.RegisterStartupScript(Page, this.GetType(), "alert",
string.Format("alert('{0}');", Messagem), true);
}
else
{
Veiculo objVeiculo = new Veiculo
{
CombustivelVeiculo = ddlCombustivel.SelectedValue,
//Metodo que verifica a quantidade maxima e minima de vagas
de carona por veiculo localizado na library
Carona_Metodos_Teste na classe Rota_Metodos
DescricaoVeiculo = ddlTipoVeiculo.SelectedValue +"-"+
txtDescricaoCarro.Text,
IdPessoa = id_Pessoa,
KmPorLitroVeiculo = int.Parse(nrbQuilometroLitro.Text),
QntLugarVeiculo = int.Parse(txtVagas.Text),
PlacaVeiculo = txtPlaca.Text,
PrecoSugeridoVeiculo = float.Parse(txtPreco.Value)
};
Veiculo_BLL veiculo = new Veiculo_BLL();
objVeiculo.IdVeiculo = veiculo.Insere_Veiculo(objVeiculo);
}
}
if (valida == true)
{
Rota_BLL rota = new Rota_BLL();
objRota.IdRota = rota.Insere_Rota(objRota);
}
}
}
53
using
using
using
using
using
using
using
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Web;
System.Web.UI;
System.Web.UI.WebControls;
Carona_BLL;
Carona_DAL;
Carona_ENT;
System.Data;
System.Data.SqlClient;
Carona_Metodos_Testes;
namespace Sistema_de_Carona_TCC.Views.Registers
{
public partial class CadastrarRota : System.Web.UI.Page
{
static int id_Pessoa;
static string tipo, tipo_Rota;
protected void Page_Load(object sender, EventArgs e)
{
if (Session["id"] == null)
{
54
string Messagem = @" Voce tem que ser Cadastrado para usar esta Funcao!!!";
ScriptManager.RegisterStartupScript(Page, this.GetType(), "alert",
string.Format("alert('{0}');", Messagem), true);
pnlOpcaoRota.Visible = false;
Response.AddHeader("REFRESH",
"2;URL=http://localhost:3272/Views/Registers/CadastrarPessoa.aspx");
// Response.Redirect("~/Views/Registers/CadastrarPessoa.aspx");
}
else
{
id_Pessoa = int.Parse(Session["id"].ToString());
}
}
protected void ddlUFinicial_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
Cidade_BLL objCidade_BLL = new Cidade_BLL();
Cidade objCidade_ENT = new Cidade();
SqlDataReader dr;
List<Cidade> Lista = new List<Cidade>();
objCidade_ENT.Estado = ddlUFinicial.SelectedValue.ToString();
dr = objCidade_BLL.Consulta_Cidade(objCidade_ENT);
if (dr.HasRows)
{
while (dr.Read())
{
Cidade estado = new Cidade();
estado.IdCidade = Convert.ToInt32(dr["id_Cidade"].ToString());
estado.NomeCidade = dr["nome_Cidade"].ToString();
Lista.Add(estado);
}
ddlCidadeInicial.DataTextField = "NomeCidade";
ddlCidadeInicial.DataValueField = "IdCidade";
ddlCidadeInicial.DataSource = Lista;
ddlCidadeInicial.DataBind();
}
}
catch (Exception)
{
throw;
}
}
protected void ddlUFFinal_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
Cidade_BLL objCidade_BLL = new Cidade_BLL();
Cidade objCidade_ENT = new Cidade();
SqlDataReader dr;
List<Cidade> Lista = new List<Cidade>();
objCidade_ENT.Estado = ddlUFFinal.SelectedValue.ToString();
dr = objCidade_BLL.Consulta_Cidade(objCidade_ENT);
if (dr.HasRows)
{
55
while (dr.Read())
{
Cidade estado = new Cidade();
estado.IdCidade = Convert.ToInt32(dr["id_Cidade"].ToString());
estado.NomeCidade = dr["nome_Cidade"].ToString();
Lista.Add(estado);
}
ddlCidadeFinal.DataTextField = "NomeCidade";
ddlCidadeFinal.DataValueField = "IdCidade";
ddlCidadeFinal.DataSource = Lista;
ddlCidadeFinal.DataBind();
}
}
catch (Exception)
{
throw;
}
56
valida = false;
txtHoraChegada.Text = "";
txtHoraChegada.BorderColor = System.Drawing.Color.Red;
}
}
if (valida==false)
{
string Messagem = @" Por favor, verifique os dados preenchidos nos campos
marcados de vermelho\n ";
ScriptManager.RegisterStartupScript(Page, this.GetType(), "alert",
string.Format("alert('{0}');", Messagem), true);
}
else
{
Rota objRota = new Rota
{
IdPessoa = id_Pessoa,
IdCidadeInicial = int.Parse(ddlCidadeInicial.SelectedValue),
IdCidadeFinal = int.Parse(ddlCidadeFinal.SelectedValue),
//Metodo que valida se a hora da carona maior ou igual que a do dia
cadastrada localizado na library Carona_Metodos_Teste na classe
Rota_Metodos
HoraSaida = DateTime.Parse(txtHoraSaida.Text),
HoraChegada = DateTime.Parse(txtHoraChegada.Text),
//Metodo que valida se a data da carona maior ou igual que a do dia
cadastrada localizado na library Carona_Metodos_Teste na classe
Rota_Metodos
//Metodo que valida se a data de saida da carona menor que a data de
chegada localizado na library Carona_Metodos_Teste na classe
Rota_Metodos
DataSaida = DateTime.Parse(txtDataSaida.Text),
DataGhegada = DateTime.Parse(txtDataChegada.Text),
TipoViagem = ddlTipoViagem.SelectedValue,
BairroSaida = txtBairroSaida.Text,
BairroChegada = txtBairroChegada.Text,
TipoRota = tipo_Rota
};
if (tipo_Rota == "Oferecendo")
{
if ((Rota.Quant_por_Veiculo(ddlTipoVeiculo.SelectedValue,
int.Parse(txtVagas.Text))) == false)
{
valida = false;
txtVagas.Text = "";
ddlTipoVeiculo.BorderColor = System.Drawing.Color.Red;
txtVagas.BorderColor = System.Drawing.Color.Red;
57
}
if (valida==false)
{
string Messagem = @" Por favor, verifique os dados preenchidos nos
campos marcados de vermelho\n ";
ScriptManager.RegisterStartupScript(Page, this.GetType(), "alert",
string.Format("alert('{0}');", Messagem), true);
}
else
{
Veiculo objVeiculo = new Veiculo
{
CombustivelVeiculo = ddlCombustivel.SelectedValue,
//Metodo que verifica a quantidade maxima e minima de vagas
de carona por veiculo localizado na library
Carona_Metodos_Teste na classe Rota_Metodos
DescricaoVeiculo = ddlTipoVeiculo.SelectedValue +"-"+
txtDescricaoCarro.Text,
IdPessoa = id_Pessoa,
KmPorLitroVeiculo = int.Parse(nrbQuilometroLitro.Text),
QntLugarVeiculo = int.Parse(txtVagas.Text),
PlacaVeiculo = txtPlaca.Text,
PrecoSugeridoVeiculo = float.Parse(txtPreco.Value)
};
Veiculo_BLL veiculo = new Veiculo_BLL();
objVeiculo.IdVeiculo = veiculo.Insere_Veiculo(objVeiculo);
}
}
}
}
if (valida == true)
{
Rota_BLL rota = new Rota_BLL();
objRota.IdRota = rota.Insere_Rota(objRota);
}
58
59
System;
System.Collections.Generic;
System.Linq;
System.Web;
System.Web.UI;
System.Web.UI.WebControls;
System.Data;
System.Data.SqlClient;
Carona_BLL;
Carona_DAL;
Carona_ENT;
namespace Sistema_de_Carona_TCC.Views.Searchs
{
public partial class ConsultaMinhasReservas : System.Web.UI.Page
{
static int id_Pessoa, id_Rota, id_Veiculo,id_Reserva,id_Pessoa_Rota;
static string tipo_Rota;
protected void Page_Load(object sender, EventArgs e)
{
if (Session["id"] == null)
60
{
string Messagem = @" Voce tem que ser Cadastrado para usar esta
Funcao!!!";
ScriptManager.RegisterStartupScript(Page, this.GetType(), "alert",
string.Format("alert('{0}');", Messagem), true);
pnlgridMinhasReservas.Visible = false;
Response.AddHeader("REFRESH",
"2;URL=http://localhost:3272/Views/Registers/CadastrarPessoa.aspx");
}
else
{
id_Pessoa = int.Parse(Session["id"].ToString());
}
}
61
txtCidadeInicial.Text = dr["nome_CidadeOrigem"].ToString();
txtCidadeFinal.Text = dr["nome_CidadeDestino"].ToString();
txtBairroInicial.Text = dr["bairro_Saida_Rota"].ToString();
txtBairroFinal.Text = dr["bairro_Chegada_Rota"].ToString();
txtDataChegada.Text = String.Format("{0:dd/MM/yyyy}",
dr["data_Chegada_Rota"]);
txtDataSaida.Text = String.Format("{0:dd/MM/yyyy}",
dr["data_Saida_Rota"]);
txtHoraSaida.Text = String.Format("{0:hh:mm:ss}",
dr["hora_Saida_Rota"]);
txtHoraChegada.Text = String.Format("{0:hh:mm:ss}",
dr["hora_Chegada_Rota"]);
txtTipoViagem.Text = dr["frequencia_Viagem_Rota"].ToString();
if (tipo_Rota == "Oferecendo")
{
objVeiculo_ENT.IdVeiculo = id_Veiculo;
drV = objVeiculo_BLL.ConsultaVeiculo(objVeiculo_ENT);
pnlVeiculo.Visible = true;
drV.Read();
txtDescricaoVeiculo.Text = drV["descricao_Veiculo"].ToString();
txtVagasDisponiveis.Text = drV["qntLugar_Veiculo"].ToString();
txtPreco.Text = drV["preco_Sugerido_Veiculo"].ToString();
}
}
catch (Exception)
{
throw;
}
}
protected void btnExcluirReserva_Click(object sender, EventArgs e)
{
Reserva_BLL objBLL = new Reserva_BLL();
objBLL.Deleta_Reserva(id_Reserva,id_Pessoa);
string Messagem = @"Reserva Excluida com Sucesso!!! ";
ScriptManager.RegisterStartupScript(Page, this.GetType(), "alert",
string.Format("alert('{0}');", Messagem), true);
Response.AddHeader("REFRESH", "2;URL=http://localhost:3272/Home.aspx");
}
}
62
63
System;
System.Collections.Generic;
System.Linq;
System.Web;
System.Web.UI;
System.Web.UI.WebControls;
System.Data;
System.Data.SqlClient;
Carona_BLL;
Carona_DAL;
Carona_ENT;
Carona_Metodos_Testes;
namespace Sistema_de_Carona_TCC.Views.Searchs
{
public partial class ConsultaMinhasRotas : System.Web.UI.Page
{
static int id_Pessoa, id_Veiculo, id_Rota;
static string tipo, tipo_Rota, tipoVeiculo;
64
65
txtUF.Text = dr["uf_Cidade"].ToString();
txtSexo.Text = dr["sexo_Pessoa"].ToString();
txtFumante.Text = dr["fumante_Pessoa"].ToString();
txtBairroInicial.Text = dr["bairro_Saida_Rota"].ToString();
txtBairroFinal.Text = dr["bairro_Chegada_Rota"].ToString();
txtDataChegada.Text = String.Format("{0:dd/MM/yyyy}",
dr["data_Chegada_Rota"]);
txtDataSaida.Text = String.Format("{0:dd/MM/yyyy}",
dr["data_Saida_Rota"]);
txtHoraSaida.Text = String.Format("{0:hh:mm:ss}",
dr["hora_Saida_Rota"]);
txtHoraChegada.Text = String.Format("{0:hh:mm:ss}",
dr["hora_Chegada_Rota"]);
ddlTipoViagem.SelectedValue =
dr["frequencia_Viagem_Rota"].ToString();
ddlUFinicial.DataBind();
ddlUFinicial.SelectedValue = dr["uf_CidadeOrigem"].ToString();
ddlUFinicial_SelectedIndexChanged(null, null);
ddlCidadeInicial.SelectedValue = dr["id_CidadeOrigem"].ToString();
ddlUFFinal.DataBind();
ddlUFFinal.SelectedValue = dr["uf_CidadeDestino"].ToString();
ddlUFFinal_SelectedIndexChanged(null, null);
ddlCidadeFinal.SelectedValue = dr["id_CidadeDestino"].ToString();
if (tipo_Rota == "Oferecendo")
{
objVeiculo_ENT.IdVeiculo = id_Veiculo;
drV = objVeiculo_BLL.ConsultaVeiculo(objVeiculo_ENT);
pnlVeiculo.Visible = true;
drV.Read();
txtPlaca.Text = drV["placa_Veiculo"].ToString();
txtKmLitro.Text = drV["kmPorLitro_Veiculo"].ToString();
ddlCombustivel.SelectedValue =
drV["combustivel_Veiculo"].ToString();
tipoVeiculo = drV["descricao_Veiculo"].ToString();
txtVagasDisponiveis.Text = drV["qntLugar_Veiculo"].ToString();
txtPreco.Text = drV["preco_Sugerido_Veiculo"].ToString();
int i = 0;
while (tipoVeiculo[i].ToString() != "-")
{
i++;
}
ddlTipoVeiculo.SelectedValue=tipoVeiculo.Substring(0, i);
txtDescricaoVeiculo.Text =
tipoVeiculo.Substring((i+1),tipoVeiculo.Length-(i+1));
}
catch (Exception)
{
throw;
}
66
}
catch (Exception)
{
throw;
}
}
67
68
69
}
}
protected void btnExcluirPessoa_Click(object sender, EventArgs e)
{
Rota objRota = new Rota
{
IdRota = id_Rota,
IdPessoa = id_Pessoa
};
Rota_BLL objBLL = new Rota_BLL();
objBLL.Deleta_Rota(objRota);
if (tipo_Rota == "Oferecendo")
{
Veiculo objVeiculo = new Veiculo
{
IdVeiculo = id_Veiculo,
IdPessoa = id_Pessoa,
};
Veiculo_BLL objVBLL = new Veiculo_BLL();
objVBLL.Deleta_Veiculo(objVeiculo);
}
}
Consulta Pessoa
70
71
72
73
using
using
using
using
using
using
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Web;
System.Web.UI;
System.Web.UI.WebControls;
System.Data;
System.Data.SqlClient;
Carona_BLL;
Carona_DAL;
Carona_ENT ;
namespace Sistema_de_Carona_TCC.Views.Searchs
{
public partial class Consulta : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Session["id"] == null)
{
string Messagem = @" Voce tem que ser Cadastrado para usar
esta
Funcao!!!";
ScriptManager.RegisterStartupScript(Page, this.GetType(), "alert",
string.Format("alert('{0}');", Messagem), true);
74
pnlOpcao.Visible = false;
Response.AddHeader("REFRESH",
"2;URL=http://localhost:3272/Views/Registers/CadastrarPessoa.aspx");
// Response.Redirect("~/Views/Registers/CadastrarPessoa.aspx");
}
protected void rbtOpcaoConsPessoa_SelectedIndexChanged(object sender, EventArgs e)
{
if (rbtOpcaoConsPessoa.SelectedValue == "1")
{
pnlGridConsulta.Visible = true;
pnlOpcao.Visible = false;
}
else
if (rbtOpcaoConsPessoa.SelectedValue == "2")
{
pnlConsultaNome.Visible = true;
pnlOpcao.Visible = false;
}
else
if (rbtOpcaoConsPessoa.SelectedValue == "3")
{
pnlConsultaCidade .Visible = true;
pnlOpcao.Visible = false;
}
}
protected void btnConsultar_Click(object sender, EventArgs e)
{
PanelgridConsultaNome.Visible = true;
}
protected void GridViewConsultaNome_SelectedIndexChanged(object sender, EventArgs e)
{
int id;
id =
int.Parse(GridViewConsultaNome.DataKeys[GridViewConsultaNome.SelectedInde
x].Values["id_Pessoa"].ToString());
try
{
Pessoa_BLL objPessoa_BLL = new Pessoa_BLL();
Pessoa objPessoa_ENT = new Pessoa();
SqlDataReader dr;
objPessoa_ENT.IdPessoa = id;
dr = objPessoa_BLL.Seleciona_Pessoa(objPessoa_ENT);
if (dr.HasRows)
{
PanelgridConsultaNome.Visible = false;
pnlConsultaPessoa.Visible = true;
pnlConsultaNome.Visible = false;
dr.Read();
pnlConsultaPessoa.Visible = true;
txtNome.Text = dr["nome_Pessoa"].ToString();
75
mskDataNascimento.Text = String.Format("{0:dd/MM/yyyy}",
dr["dtNacs_Pessoa"]);
txtRua.Text = dr["rua_Pessoa"].ToString();
txtCidade.Text = dr["nome_Cidade"].ToString();
txtUf.Text = dr["uf_Cidade"].ToString();
txtComplemento.Text = dr["complemento_Pessoa"].ToString();
txtBairro.Text = dr["bairro_Pessoa"].ToString();
txtNumero.Text = dr["numero_Pessoa"].ToString();
mskTelefoneCelular.Text = dr["telCel_Pessoa"].ToString();
mskTelefoneResidencial.Text = dr["telCel_Pessoa"].ToString();
mskTelefoneComercial.Text = dr["telCom_Pessoa"].ToString();
rbtFumante.SelectedValue = dr["fumante_Pessoa"].ToString();
rbtPortador.SelectedValue = dr["portador_Pessoa"].ToString();
txtEmail.Text = dr["email_Pessoa"].ToString();
txtSexo.Text = dr["sexo_Pessoa"].ToString();
//foto
}
}
catch (Exception)
{
throw;
}
76
mskTelefoneResidencial.Text = dr["telCel_Pessoa"].ToString();
mskTelefoneComercial.Text = dr["telCom_Pessoa"].ToString();
rbtFumante.SelectedValue = dr["fumante_Pessoa"].ToString();
rbtPortador.SelectedValue = dr["portador_Pessoa"].ToString();
txtEmail.Text = dr["email_Pessoa"].ToString();
txtSexo.Text = dr["sexo_Pessoa"].ToString();
//foto
}
}
catch (Exception)
{
throw;
}
}
protected void btnConsultarCidade_Click(object sender, EventArgs e)
{
PanelgridConsultaCidade.Visible = true;
}
protected void GridViewConsultaCidade_SelectedIndexChanged(object sender, EventArgs e)
{
int id;
id =
int.Parse(GridViewConsultaCidade.DataKeys[GridViewConsultaCidade.SelectedIndex].
Values["id_Pessoa"].ToString());
try
{
Pessoa_BLL objPessoa_BLL = new Pessoa_BLL();
Pessoa objPessoa_ENT = new Pessoa();
SqlDataReader dr;
objPessoa_ENT.IdPessoa = id;
dr = objPessoa_BLL.Seleciona_Pessoa(objPessoa_ENT);
if (dr.HasRows)
{
PanelgridConsultaNome.Visible = false;
pnlConsultaPessoa.Visible = true;
pnlConsultaCidade.Visible = false;
PanelgridConsultaCidade .Visible = false;
dr.Read();
pnlConsultaPessoa.Visible = true;
txtNome.Text = dr["nome_Pessoa"].ToString();
mskDataNascimento.Text = String.Format("{0:dd/MM/yyyy}",
dr["dtNacs_Pessoa"]);
txtRua.Text = dr["rua_Pessoa"].ToString();
txtCidade.Text = dr["nome_Cidade"].ToString();
txtUf.Text = dr["uf_Cidade"].ToString();
txtComplemento.Text = dr["complemento_Pessoa"].ToString();
txtBairro.Text = dr["bairro_Pessoa"].ToString();
txtNumero.Text = dr["numero_Pessoa"].ToString();
mskTelefoneCelular.Text = dr["telCel_Pessoa"].ToString();
mskTelefoneResidencial.Text = dr["telCel_Pessoa"].ToString();
mskTelefoneComercial.Text = dr["telCom_Pessoa"].ToString();
rbtFumante.SelectedValue = dr["fumante_Pessoa"].ToString();
77
rbtPortador.SelectedValue = dr["portador_Pessoa"].ToString();
txtEmail.Text = dr["email_Pessoa"].ToString();
txtSexo.Text = dr["sexo_Pessoa"].ToString();
//foto
}
}
}
}
catch (Exception)
{
throw;
}
78
79
using
using
using
using
using
using
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Web;
System.Web.UI;
System.Web.UI.WebControls;
System.Data;
System.Data.SqlClient;
Carona_BLL;
Carona_DAL;
Carona_ENT;
namespace Sistema_de_Carona_TCC.Views.Searchs
{
public partial class ConsultaRotas : System.Web.UI.Page
{
static int id_Pessoa, id_Veiculo, id_Rota;
static string tipo, tipo_Rota;
protected void Page_Load(object sender, EventArgs e)
80
{
if (Session["id"] == null)
{
string Messagem = @" Voce tem que ser Cadastrado para usar esta
Funcao!!!";
ScriptManager.RegisterStartupScript(Page, this.GetType(), "alert",
string.Format("alert('{0}');", Messagem), true);
pnlOpcao.Visible = false;
Response.AddHeader("REFRESH",
"2;URL=http://localhost:3272/Views/Registers/CadastrarPessoa.aspx");
}
else
{
id_Pessoa = int.Parse(Session["id"].ToString());
}
}
protected void rbtOpcaoConsRota_SelectedIndexChanged(object sender, EventArgs e)
{
if (rbtOpcaoConsRota.SelectedValue == "1")
{
pnlConsultaNomeCidade.Visible = false;
pnlOpcao.Visible = false;
pnlgridConsultaTodasRotas.Visible = true;
}
else
if (rbtOpcaoConsRota.SelectedValue == "2")
{
pnlOpcao.Visible = false;
pnlConsultaNomeCidade.Visible = true;
}
81
}
catch (Exception)
{
throw;
}
82
83
}
}
txtDescricaoVeiculo.Text = drV["descricao_Veiculo"].ToString();
txtVagasDisponiveis.Text = drV["qntLugar_Veiculo"].ToString();
txtPreco.Text = drV["preco_Sugerido_Veiculo"].ToString();
}
catch (Exception)
{
throw;
}
}
84
Classe Cidade_BLL
using System;
using System.Collections.Generic;
85
using System.Linq;
using System.Text;
using Carona_DAL;
using Carona_ENT;
using System.Data;
using System.Data.SqlClient;
namespace Carona_BLL
{
public class Cidade_BLL
{
//MTODO QUE TRAZ TODAS AS CIDADES DE UM RESPECTIVO ESTADO, CHAMANDO O
MTODO DA CAMADA Cidade_DAL
public SqlDataReader Consulta_Cidade(Cidade objCidade)
{
try
{
Cidade_DAL objDAL = new Cidade_DAL();
return objDAL.Consulta_Cidade(objCidade);
}
catch (Exception)
{
throw;
}
}
}
}
Classe Pessoa_BLL
using
using
using
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
Carona_DAL;
Carona_ENT;
System.Data;
System.Data.SqlClient;
namespace Carona_BLL
{
public class Pessoa_BLL
{
//MTODO QUE INSERE UMA PESSOA NA TABELA tab_Pessoa CHAMANDO UM MTODO
DA CAMADA Pessoa_DAL
public int Insere_Pessoa(Pessoa objPessoa)
{
try
{
Pessoa_DAL obj_DAL = new Pessoa_DAL();
int id = obj_DAL.Insere_Pessoa(objPessoa);
return id;
}
catch (Exception)
{
throw;
}
}
86
Classe Reserva_BLL
using System;
using System.Collections.Generic;
using System.Linq;
87
using
using
using
using
using
System.Text;
Carona_DAL;
Carona_ENT;
System.Data;
System.Data.SqlClient;
namespace Carona_BLL
{
public class Reserva_BLL
{
//MTODO QUE INSERE UMA RESERVA NA TABELA tab_Reserva CHAMANDO UM
MTODO DA CAMADA Reserva_DAL
public int Insere_Reserva(Reserva objReserva)
{
try
{
Reserva_DAL obj_DAL = new Reserva_DAL();
return obj_DAL.Insere_Reserva(objReserva);
}
catch (Exception)
{
throw;
}
}
//MTODO QUE RETORNA O ID DAS RESERVAS PARA NO DEIXAR A PESSOA
RESERVAR UMA VIAGEM MAIS DE UMA VEZ, CHAMANDO UM MTODO DA CAMADA
Reserva_DAL
public SqlDataReader RetornaID_Reserva(int id_Pessoa, int id_Rota)
{
try
{
Reserva_DAL obj_DAL = new Reserva_DAL();
return obj_DAL.RetornaID_Reserva(id_Pessoa, id_Rota);
}
catch (Exception)
{
throw;
}
}
//MTODO QUE DELETA UMA RESERVA NA TABELA tab_Reserva CHAMANDO UM
MTODO DA CAMADA Reserva_DAL
public void Deleta_Reserva(int id_Reserva, int id_Pessoa)
{
try
{
Reserva_DAL obj_DAL = new Reserva_DAL();
obj_DAL.Deleta_Reserva(id_Reserva, id_Pessoa);
}
catch (Exception)
{
throw;
}
}
//MTODO QUE SELECIONA OS DADOS DE UMA RESERVA DA TABELA tab_Reserva
CHAMANDO UM MTODO DA CAMADA Reserva_DAL
public SqlDataReader Seleciona_Reserva(Reserva objReserva)
{
try
{
Reserva_DAL obj_DAL = new Reserva_DAL();
88
}
}
return obj_DAL.Seleciona_Reserva(objReserva);
}
catch (Exception)
{
throw;
}
Classe Rota_BLL
using
using
using
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
Carona_DAL;
Carona_ENT;
System.Data;
System.Data.SqlClient;
namespace Carona_BLL
{
public class Rota_BLL
{
//MTODO QUE INSERE UMA ROTA NA TABELA tab_Rota CHAMANDO UM MTODO DA
CAMADA Rota_DAL
public int Insere_Rota(Rota objRota)
{
try
{
Rota_DAL obj_DAL = new Rota_DAL();
int id = obj_DAL.Insere_Rota(objRota);
return id;
}
catch (Exception)
{
throw;
}
}
//MTODO QUE RETORNA OS DADOS DE UMA ROTA DA TABELA tab_Rota CHAMANDO
UM MTODO DA CAMADA Rota_DAL
public SqlDataReader Seleciona_Rota(Rota objRota)
{
try
{
Rota_DAL objDAL = new Rota_DAL();
return objDAL.Seleciona_Rota(objRota);
}
catch (Exception)
{
throw;
}
}
//MTODO QUE ALTERA UMA ROTA NA TABELA tab_Rota CHAMANDO UM MTODO DA
CAMADA Rota_DAL
public void Altera_Rota(Rota objRota)
89
try
{
Rota_DAL objDAL = new Rota_DAL();
objDAL.Altera_Rota(objRota);
}
catch (Exception)
{
throw;
}
Classe Veiculo_BLL
using
using
using
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
Carona_DAL;
Carona_ENT;
System.Data;
System.Data.SqlClient;
namespace Carona_BLL
{
public class Veiculo_BLL
{
//MTODO QUE INSERE UM VEICULO NA TABELA tab_Veiculo CHAMANDO UM MTODO
DA CAMADA Veiculo_DAL
public int Insere_Veiculo(Veiculo objVeiculo)
{
try
{
Veiculo_DAL obj_DAL = new Veiculo_DAL();
int id = obj_DAL.Insere_Veiculo(objVeiculo);
return id;
}
catch (Exception)
{
throw;
}
}
90
Classe Cidade_DAL
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
91
using Carona_ENT;
using System.Data;
using System.Data.SqlClient;
namespace Carona_DAL
{
public class Cidade_DAL
{
Util conexao = new Util();
//MTODO QUE TRAZ TODAS AS CIDADES DE UM RESPECTIVO ESTADO
public SqlDataReader Consulta_Cidade(Cidade objCidade)
{
try
{
}
}
}
catch (Exception)
{
throw;
}
Classe Pessoa_DAL
using
using
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
Carona_ENT;
System.Data;
System.Data.SqlClient;
namespace Carona_DAL
{
public class Pessoa_DAL
{
Util conexao = new Util();
//MTODO QUE INSERE UMA PESSOA NA TABELA tab_Pessoa UTILIZANDO UMA
STORED PROCEDURE
public int Insere_Pessoa(Pessoa objPessoa)
{
try
{
SqlConnection _conn = new SqlConnection(conexao.GetConnectionString(""));
SqlCommand _coman = new SqlCommand();
_conn.Open();
92
_coman.Connection = _conn;
_coman.CommandType = CommandType.StoredProcedure;
_coman.CommandText = "[sp_Insere_Pessoa]";
_coman.Parameters.AddWithValue("@portador_Pessoa", SqlDbType.VarChar).
Value = objPessoa.PotadorPessoa;
_coman.Parameters.AddWithValue("@matricula_Pessoa", SqlDbType.VarChar).
Value = objPessoa.Matricula;
_coman.Parameters.AddWithValue("@senha_Pessoa", SqlDbType.VarChar).
Value = objPessoa.Senha;
_coman.Parameters.AddWithValue("@nome_Pessoa", SqlDbType.VarChar).
Value = objPessoa.Nome;
_coman.Parameters.AddWithValue("@dtNacs_Pessoa", SqlDbType.DateTime).
Value = objPessoa.DataNascimento;
_coman.Parameters.AddWithValue("@rua_Pessoa", SqlDbType.VarChar).
Value = objPessoa.Rua;
_coman.Parameters.AddWithValue("@id_Cidade_Pessoa", SqlDbType.Int).
Value = objPessoa.IdCidade;
_coman.Parameters.AddWithValue("@complemento_Pessoa", SqlDbType.VarChar).
Value = objPessoa.Complemento;
_coman.Parameters.AddWithValue("@bairro_Pessoa", SqlDbType.VarChar).
Value = objPessoa.Bairro;
_coman.Parameters.AddWithValue("@numero_Pessoa", SqlDbType.VarChar).
Value = objPessoa.Numero;
_coman.Parameters.AddWithValue("@telCel_Pessoa", SqlDbType.VarChar).
Value = objPessoa.TelCel;
_coman.Parameters.AddWithValue("@telFixo_Pessoa", SqlDbType.VarChar).
Value = objPessoa.TelFixo;
_coman.Parameters.AddWithValue("@telCom_Pessoa", SqlDbType.VarChar).
Value = objPessoa.TelCom;
_coman.Parameters.AddWithValue("@fumante_Pessoa", SqlDbType.VarChar).
Value = objPessoa.Fumante;
_coman.Parameters.AddWithValue("@cpf_Pessoa", SqlDbType.VarChar).
Value = objPessoa.Cpf;
_coman.Parameters.AddWithValue("@rg_Pessoa", SqlDbType.VarChar).
Value = objPessoa.Rg;
_coman.Parameters.AddWithValue("@email_Pessoa", SqlDbType.VarChar).
Value = objPessoa.Email;
_coman.Parameters.AddWithValue("@sexo_Pessoa", SqlDbType.VarChar).
Value = objPessoa.Sexo;
_coman.Parameters.AddWithValue("@foto_Pessoa", SqlDbType.VarChar).
Value = objPessoa.Foto;
SqlParameter retorna = _coman.Parameters.
AddWithValue("@id_Pessoa", SqlDbType.Int);
retorna.Direction = ParameterDirection.Output;
_coman.ExecuteNonQuery();
return Convert.ToInt32(retorna.Value);
}
catch (Exception)
{
throw;
}
}
//MTODO QUE SELECIONA TODOS OS DADOS DE UMA PESSOA DA TABELA
tab_Pessoa UTILIZANDO UMA STORED PROCEDURE
public SqlDataReader Seleciona_Pessoa(Pessoa objPessoa)
{
try
{
SqlConnection conn = new SqlConnection(conexao.GetConnectionString(""));
SqlCommand coman = new SqlCommand();
conn.Open();
coman.Connection = conn;
93
coman.CommandType = CommandType.StoredProcedure;
coman.CommandText = "[sp_Seleciona_Dados_Pessoa]";
coman.Parameters.AddWithValue("@id_Pessoa", SqlDbType.Int).
Value = objPessoa.IdPessoa;
SqlDataReader dr = coman.ExecuteReader();
return dr;
}
catch (Exception)
{
throw;
}
}
94
_coman.Parameters.AddWithValue("@foto_Pessoa", SqlDbType.VarChar).
Value = objPessoa.Foto;
_coman.ExecuteNonQuery();
}
catch (Exception)
{
throw;
}
}
Classe Rota_DAL
using
using
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
Carona_ENT;
System.Data;
System.Data.SqlClient;
namespace Carona_DAL
{
public class Rota_DAL
{
Util conexao = new Util();
//MTODO QUE INSERE UMA ROTA NA TABELA tab_Rota UTILIZANDO UMA STORED
PROCEDURE
public int Insere_Rota(Rota objRota)
{
try
{
SqlConnection _conn = new SqlConnection(conexao.GetConnectionString(""));
SqlCommand _coman = new SqlCommand();
_conn.Open();
95
_coman.Connection = _conn;
_coman.CommandType = CommandType.StoredProcedure;
_coman.CommandText = "[sp_Insere_Rota]";
_coman.Parameters.AddWithValue("@id_Pessoa_Rota", SqlDbType.Int).
Value = objRota.IdPessoa;
_coman.Parameters.AddWithValue("@id_CidadeOrigem_Rota", SqlDbType.Int).
Value = objRota.IdCidadeInicial;
_coman.Parameters.AddWithValue("@id_CidadeDestino_Rota",
SqlDbType.Int).Value = objRota.IdCidadeFinal;
_coman.Parameters.AddWithValue("@hora_Saida_Rota",
SqlDbType.DateTime).Value = objRota.HoraSaida;
_coman.Parameters.AddWithValue("@hora_Chegada_Rota",
SqlDbType.DateTime).Value = objRota.HoraChegada;
_coman.Parameters.AddWithValue("@data_Saida_Rota",
SqlDbType.DateTime).Value = objRota.DataSaida;
_coman.Parameters.AddWithValue("@data_Chegada_Rota",
SqlDbType.DateTime).Value = objRota.DataGhegada;
_coman.Parameters.AddWithValue("@frequencia_Viagem_Rota",
SqlDbType.VarChar).Value = objRota.TipoViagem;
_coman.Parameters.AddWithValue("@bairro_Saida_Rota",
SqlDbType.VarChar).Value = objRota.BairroSaida;
_coman.Parameters.AddWithValue("@bairro_Chegada_Rota",
SqlDbType.VarChar).Value = objRota.BairroChegada;
_coman.Parameters.AddWithValue("@tipo_Rota", SqlDbType.VarChar).
Value = objRota.TipoRota;
SqlParameter retorna = _coman.Parameters.AddWithValue("@id_Rota",
SqlDbType.Int);
retorna.Direction = ParameterDirection.Output;
_coman.ExecuteNonQuery();
return Convert.ToInt32(retorna.Value);
}
catch (Exception)
{
throw;
}
}
//MTODO QUE RETORNA OS DADOS DE UMA CERTA ROTA UTILIZANDO UMA STORED
PROCEDURE
public SqlDataReader Seleciona_Rota(Rota objRota)
{
try
{
SqlConnection conn = new SqlConnection(conexao.GetConnectionString(""));
SqlCommand coman = new SqlCommand();
conn.Open();
coman.Connection = conn;
coman.CommandType = CommandType.StoredProcedure;
coman.CommandText = "[sp_Seleciona_Dados_Rota]";
coman.Parameters.AddWithValue("@id_Rota", SqlDbType.Int).
Value = objRota.IdRota;
coman.Parameters.AddWithValue("@id_Pessoa", SqlDbType.Int).
Value = objRota.IdPessoa;
SqlDataReader dr = coman.ExecuteReader();
return dr;
}
catch (Exception)
{
throw;
}
}
96
//MTODO QUE ALTERA UMA CERTA ROTA NA tab_Rota UTILIZANDO UMA STORED
PROCEDURE
public void Altera_Rota(Rota objRota)
{
try
{
SqlConnection conn = new SqlConnection(conexao.GetConnectionString(""));
SqlCommand coman = new SqlCommand();
conn.Open();
coman.Connection = conn;
coman.CommandType = CommandType.StoredProcedure;
coman.CommandText = "[sp_Altera_Rota]";
coman.Parameters.AddWithValue("@id_Rota", SqlDbType.Int).
Value = objRota.IdRota;
coman.Parameters.AddWithValue("@id_Pessoa_Rota", SqlDbType.Int).
Value = objRota.IdPessoa;
coman.Parameters.AddWithValue("@id_CidadeOrigem_Rota",
SqlDbType.Int).Value = objRota.IdCidadeInicial;
coman.Parameters.AddWithValue("@id_CidadeDestino_Rota",
SqlDbType.Int).Value = objRota.IdCidadeFinal;
coman.Parameters.AddWithValue("@hora_Saida_Rota",
SqlDbType.DateTime).Value = objRota.HoraSaida;
coman.Parameters.AddWithValue("@hora_Chegada_Rota",
SqlDbType.DateTime).Value = objRota.HoraChegada;
coman.Parameters.AddWithValue("@data_Saida_Rota",
SqlDbType.DateTime).Value = objRota.DataSaida;
coman.Parameters.AddWithValue("@data_Chegada_Rota",
SqlDbType.DateTime).Value = objRota.DataGhegada;
coman.Parameters.AddWithValue("@frequencia_Viagem_Rota",
SqlDbType.VarChar).Value = objRota.TipoViagem;
coman.Parameters.AddWithValue("@bairro_Saida_Rota",
SqlDbType.VarChar).Value = objRota.BairroSaida;
coman.Parameters.AddWithValue("@bairro_Chegada_Rota",
SqlDbType.VarChar).Value = objRota.BairroChegada;
coman.Parameters.AddWithValue("@tipo_Rota", SqlDbType.VarChar).
Value = objRota.TipoRota;
coman.ExecuteNonQuery();
}
catch (Exception)
{
throw;
}
}
//MTODO QUE DELETA UMA CERTA ROTA DA TABELA tab_Rota UTILZANDO UMA
STORED PROCEDURE
public void Deleta_Rota(Rota objRota)
{
try
{
SqlConnection conn = new SqlConnection(conexao.GetConnectionString(""));
SqlCommand coman = new SqlCommand();
conn.Open();
coman.Connection = conn;
coman.CommandType = CommandType.StoredProcedure;
coman.CommandText = "[sp_Deleta_Rota]";
coman.Parameters.AddWithValue("@id_Rota", SqlDbType.Int).
Value = objRota.IdRota;
coman.Parameters.AddWithValue("@id_Pessoa_Rota", SqlDbType.Int).
Value = objRota.IdPessoa;
coman.ExecuteNonQuery();
}
97
}
}
catch (Exception)
{
throw;
}
Classe Veirculo_DAL
using
using
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
System.Data;
System.Data.SqlClient;
Carona_ENT;
namespace Carona_DAL
{
public class Veiculo_DAL
{
Util conexao = new Util();
//MTODO QUE INSERE UM VEICULO NA TABELA tab_Veiculo UTILIZANDO UMA STORED
PROCEDURE
public int Insere_Veiculo(Veiculo objVeiculo)
{
SqlConnection CON = new SqlConnection(conexao.GetConnectionString(""));
SqlCommand COMAN = new SqlCommand();
try
{
CON.Open();
COMAN.Connection = CON;
COMAN.CommandType = CommandType.StoredProcedure;
COMAN.CommandText = "[sp_Insere_Veiculo]";
COMAN.Parameters.AddWithValue("@id_Pessoa_Veiculo",
SqlDbType.Int).Value = objVeiculo.IdPessoa;
COMAN.Parameters.AddWithValue("@descricao_Veiculo",
SqlDbType.VarChar).Value = objVeiculo.DescricaoVeiculo;
COMAN.Parameters.AddWithValue("@combustivel_Veiculo",
SqlDbType.VarChar ).Value = objVeiculo.CombustivelVeiculo;
COMAN.Parameters.AddWithValue("@placa_Veiculo", SqlDbType.VarChar ).
Value = objVeiculo.PlacaVeiculo;
COMAN.Parameters.AddWithValue("@kmPorLitro_Veiculo", SqlDbType.Int).
Value = objVeiculo.KmPorLitroVeiculo;
COMAN.Parameters.AddWithValue("@qntLugar_Veiculo", SqlDbType.Int).
Value = objVeiculo.QntLugarVeiculo;
COMAN.Parameters.AddWithValue("@preco_Sugerido_Veiculo",
SqlDbType.Float).Value = objVeiculo.PrecoSugeridoVeiculo;
SqlParameter retorna = COMAN.Parameters.AddWithValue("@id_Veiculo",
SqlDbType.Int);
retorna.Direction = ParameterDirection.Output;
COMAN .ExecuteNonQuery();
return Convert.ToInt32(retorna.Value);
}
catch (Exception)
{
throw;
98
}
}
//MTODO QUE CONSULTA UM CERTO VEICULO DA tab_Veiculo UTILIZANDO UMA STORES
PROCEDURE
public SqlDataReader ConsultaVeiculo(Veiculo objVeiculo)
{
try
{
SqlConnection con = new SqlConnection(conexao.GetConnectionString(""));
SqlCommand coman = new SqlCommand();
con.Open();
coman.Connection = con;
coman.CommandType = CommandType.StoredProcedure;
coman.CommandText = "[sp_Consulta_Veiculo]";
coman.Parameters.AddWithValue("@id_Veiculo", SqlDbType.Int).
Value = objVeiculo.IdVeiculo;
SqlDataReader dr = coman.ExecuteReader();
return dr;
}
catch (Exception)
{
throw;
}
}
//MTODO QUE ALTERA UM CERTO VEICULO DA tab_Veiculo UTILIZANDO UMA STORES
PROCEDURE
public void Altera_Veiculo(Veiculo objVeiculo)
{
SqlConnection CON = new SqlConnection(conexao.GetConnectionString(""));
SqlCommand COMAN = new SqlCommand();
try
{
CON.Open();
COMAN.Connection = CON;
COMAN.CommandType = CommandType.StoredProcedure;
COMAN.CommandText = "[sp_Altera_Veiculo]";
COMAN.Parameters.AddWithValue("@id_Veiculo", SqlDbType.Int).
Value = objVeiculo.IdVeiculo;
COMAN.Parameters.AddWithValue("@id_Pessoa_Veiculo",
SqlDbType.Int).Value = objVeiculo.IdPessoa;
COMAN.Parameters.AddWithValue("@descricao_Veiculo",
SqlDbType.VarChar).Value = objVeiculo.DescricaoVeiculo;
COMAN.Parameters.AddWithValue("@combustivel_Veiculo",
SqlDbType.VarChar).Value = objVeiculo.CombustivelVeiculo;
COMAN.Parameters.AddWithValue("@placa_Veiculo",
SqlDbType.VarChar).Value = objVeiculo.PlacaVeiculo;
COMAN.Parameters.AddWithValue("@kmPorLitro_Veiculo", SqlDbType.Int).
Value = objVeiculo.KmPorLitroVeiculo;
COMAN.Parameters.AddWithValue("@qntLugar_Veiculo", SqlDbType.Int).
Value = objVeiculo.QntLugarVeiculo;
COMAN.Parameters.AddWithValue("@preco_Sugerido_Veiculo",
SqlDbType.Float).Value = objVeiculo.PrecoSugeridoVeiculo;
COMAN.ExecuteNonQuery();
}
catch (Exception)
{
throw;
}
}
99
Classe Reserva_DAL
using
using
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
Carona_ENT;
System.Data;
System.Data.SqlClient;
namespace Carona_DAL
{
public class Reserva_DAL
{
Util conexao = new Util();
//MTODO QUE INSERE UMA RESERVA NA TABELA tab_Reserva UTILIZANDO UMA
STORED PROCEDURE
public int Insere_Reserva(Reserva objReserva)
{
try
{
SqlConnection _conn = new SqlConnection(conexao.GetConnectionString(""));
SqlCommand _coman = new SqlCommand();
_conn.Open();
_coman.Connection = _conn;
_coman.CommandType = CommandType.StoredProcedure;
_coman.CommandText = "[sp_Insere_Reserva]";
_coman.Parameters.AddWithValue("@id_Pessoa_Reserva", SqlDbType.Int).
Value = objReserva.IdPessoa;
_coman.Parameters.AddWithValue("@id_Rota_Reserva", SqlDbType.Int).
Value = objReserva.IdRota;
100
101
Classe Pessoa_ENT
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
namespace Carona_ENT
{
public class Pessoa
{
private int _idPessoa;
public int IdPessoa
{
get { return _idPessoa; }
set { _idPessoa = value; }
}
private string _matricula;
public string Matricula
{
get { return _matricula; }
set { _matricula = value; }
}
private string _senha;
public string Senha
{
get { return _senha; }
set { _senha = value; }
}
102
103
104
Classe Rota_ENT
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
namespace Carona_ENT
{
public class Rota
{
private int _idRota;
public int IdRota
{
get { return _idRota; }
set { _idRota = value; }
}
private int _idPessoa;
public int IdPessoa
{
get { return _idPessoa; }
set { _idPessoa = value; }
}
private int _idCidadeInicial;
public int IdCidadeInicial
{
get { return _idCidadeInicial; }
set { _idCidadeInicial = value; }
}
private int _idCidadeFinal;
public int IdCidadeFinal
{
get { return _idCidadeFinal; }
set { _idCidadeFinal = value; }
}
105
106
Classe Veiculo_ENT
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
namespace Carona_ENT
{
public class Veiculo
{
private int _idVeiculo;
public int IdVeiculo
{
get { return _idVeiculo; }
set { _idVeiculo = value; }
}
private int _idPessoa;
public int IdPessoa
{
get { return _idPessoa; }
set { _idPessoa = value; }
}
private string _descricaoVeiculo;
public string DescricaoVeiculo
{
get { return _descricaoVeiculo; }
set { _descricaoVeiculo = value; }
}
private string _combustivelVeiculo;
public string CombustivelVeiculo
{
get { return _combustivelVeiculo; }
set { _combustivelVeiculo = value; }
}
private string _placaVeiculo;
public string PlacaVeiculo
{
get { return _placaVeiculo; }
set { _placaVeiculo = value; }
107
}
private int _kmPorLitroVeiculo;
public int KmPorLitroVeiculo
{
get { return _kmPorLitroVeiculo; }
set { _kmPorLitroVeiculo = value; }
}
private int _qntLugarVeiculo;
public int QntLugarVeiculo
{
get { return _qntLugarVeiculo; }
set { _qntLugarVeiculo = value; }
}
private float _precoSugeridoVeiculo;
public float PrecoSugeridoVeiculo
{
get { return _precoSugeridoVeiculo; }
set { _precoSugeridoVeiculo = value; }
}
}
Classe Reserva_ENT
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
namespace Carona_ENT
{
public class Reserva
{
private int _idReserva;
public int IdReserva
{
get { return _idReserva; }
set { _idReserva = value; }
}
private int _idPessoa;
public int IdPessoa
{
get { return _idPessoa; }
set { _idPessoa = value; }
}
private int _idRota;
}
}
108
Classe Cidade_ENT
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
namespace Carona_ENT
{
public class Cidade
{
private string _nomeCidade;
public string NomeCidade
{
get { return _nomeCidade; }
set { _nomeCidade = value; }
}
private string _estado;
public string Estado
{
get { return _estado; }
set { _estado = value; }
}
private int _idCidade;
public int IdCidade
{
get { return _idCidade; }
set { _idCidade = value; }
}
public Rota Rota
{
get { throw new System.NotImplementedException(); }
set { }
}
public Rota Rota1
{
get { throw new System.NotImplementedException(); }
set { }
}
public Pessoa Pessoa
{
get { throw new System.NotImplementedException(); }
set { }
}
public Pessoa Pessoa1
{
get { throw new System.NotImplementedException(); }
set { }
}
}
109
Classe Cidade_Destino_ENT
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
namespace Carona_ENT
{
public class Cidade_Destino
{
private int _id_CidDest;
public int Id_CidDest
{
get { return _id_CidDest; }
set { _id_CidDest = value; }
}
private string _nome_CidDest;
public string Nome_CidDest
{
get { return _nome_CidDest; }
set { _nome_CidDest = value; }
}
private string _estado_CidDest;
Classe Cidade_Origem_ENT
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
namespace Carona_ENT
{
public class Cidade_Origem
{
private int _id_CidOrigem;
public int Id_CidOrigem
{
get { return _id_CidOrigem; }
set { _id_CidOrigem = value; }
}
private string _nome_CidOrigem;
110
Classe Util_ENT
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
System.Configuration;
namespace Carona_ENT
{
public class Util
{
//METODO QUE RETORNA A CONNECTION STRING PARA A CONEXAO COM O BANCO DE
DADOS
public string GetConnectionString(string str)
{
string conn = string.Empty;
if (!string.IsNullOrEmpty(str))
{
conn = ConfigurationManager.ConnectionStrings[str].
ConnectionString;
}
else
{
conn = ConfigurationManager.ConnectionStrings["ConnectionString"].
ConnectionString;
}
return conn;
}
}
}
111
Tipo
int
varchar
varchar
Tamanho
80
5
Observaes:
Descrio
Cdigo da cidade
Nome da cidade
Estado da cidade
112
Chave
Sim
No
No
No
No
No
No
No
No
Nome
Tipo
id_Pessoa
int
portador_Pessoa
varchar
matricula_Pessoa
varchar
senha_Pessoa
varchar
nome_Pessoa
varchar
dtNacs_Pessoa
datetime
rua_Pessoa
varchar
id_Cidade_Pessoa
Int
complemento_Pesso
varchar
a
No
bairro_Pessoa
varchar
No
numero_Pessoa
varchar
No
telCel_Pessoa
varchar
No
telFixo_Pessoa
varchar
No
telCom_Pessoa
varchar
No
fumante_Pessoa
varchar
No
cpf_Pessoa
varchar
No
rg_Pessoa
varchar
No
email_Pessoa
varchar
No
sexo_Pessoa
varchar
No
foto_Pessoa
varchar
Relacionamento:
Tab_Pessoa 1 - Tab_Cidade
Tab_Pessoa 1 - Tab_Veiculo
Tab_Pessoa 1 - Tab_Reserva
Tab_Pessoa 1 - Tab_Rota
Tamanho
20
Descrio
Cdigo da pessoa
Portador de alguma necessidade especial?
Matricula da pessoa
Senha da pessoa
Nome da pessoa
Data de nascimento da pessoa
Rua da pessoa
Chave estrangeira Cdigo da cidade
Informao complementar do endereo da pessoa
50
7
13
13
13
15
15
15
50
10
100
Bairro da pessoa
Rua da pessoa
Telefone celular da pessoa
Telefone fixo da pessoa
Telefone comercial da pessoa
Status de fumante da pessoa
CPF da pessoa
RG da pessoa
Email da pessoa
Sexo da pessoa
Foto da pessoa
50
9
8
50
50
Observaes:
- Se for portador de necessidade especial deve especificar qual .
- Informao complementar = apartamento, casa, etc.
Tamanho
Descrio
Cdigo da reserva
Chave estrangeira Cdigo da pessoa
Chave estrangeira Cdigo da rota
Observaes:
Tipo
int
int
Tamanho
Descrio
Cdigo da rota
Chave estrangeira Cdigo da pessoa
113
No
id_CidadeOrigem_Rota
No
id_CidadeDestino_Rota
No
hora_Saida_Rota
No
hora_Chegada_Rota
No
data_Saida_Rota
No
data_Chegada_Rota
No
frequencia_Viagem_Rota
No
bairro_Saida_Rota
No
bairro_Chegada_Rota
No
tipo_Rota
Relacionamento:
Tab_Rota - 1 Tab_Pessoa
Tab_Rota 1 - Tab_Reserva
int
int
datetime
datetime
datetime
datetime
varchar
varchar
varchar
varchar
30
50
50
50
Observaes:
Tamanho
20
15
8
Descrio
Cdigo do veiculo
Chave estrangeira Cdigo da pessoa
Descrio do veiculo
Tipo de combustvel do veiculo
Placa do veiculo
kilometragem rodada com 1 litro
Quantidade de lugares disponveis no veiculo
Valor sugerido pela viagem
114
Estado;
Cidade;
Telefones;
Status de Fumante;
Cpf;
Rg;
E-mail;
Sexo;
Foto;
2. O sistema verifica os dados fornecidos pelo usurio e confirma o cadastro.
Fluxo Alternativo
2a. Os dados esto incorretos;
2a1. Retorna ao passo 1;
Tabela 1-Caso de Uso Cadastrar Pessoa
115
116
117
118
119
120
Nome:Consulta Contatos
Atores Principais: Administrador, Internauta.
Pr-Condio: Estar logado como administrador ou como internauta.
Fluxo Principal
1. O usurio seleciona Contatos;
2. O sistema retorna os dados;
Fluxo Alternativo
Tabela 17-Caso de Uso Consulta Contatos
Nome:Consulta Help
Atores Principais: Administrador, Internauta.
Pr-Condio: Estar logado como administrador ou como internauta.
Fluxo Principal
1. O usurio seleciona Help;
2. O sistema retorna os dados;
Fluxo Alternativo
Tabela 18-Caso de Uso Consulta Help
Nome:Consulta Home
Atores Principais: Administrador, Internauta.
Pr-Condio: Estar logado como administrador ou como internauta.
Fluxo Principal
1. O usurio seleciona Home;
2. O sistema retorna os dados;
Fluxo Alternativo
Tabela 19-Caso de Uso Consulta Home
Nome:Sair
Atores Principais: Administrador, Internauta.
Pr-Condio: Estar logado como administrador ou como internauta.
Fluxo Principal
1. O usurio seleciona Sair;
2. O sistema retorna para pagina de Login;
Fluxo Alternativo
Tabela 20-Caso de Uso Sair
Nome: Login
Atores Principais: Administrador, Internauta.
121
122
123
124
APENDICE F - MODELO ER
125