public bool Modificar(Pasajero pasajero)
        {
            var gestorDAO = new FabricaDAOSql().CrearGestorDAO();
            var pasajeroDAO = new FabricaDAOSql().CrearPasajeroDAO(gestorDAO);

            return pasajeroDAO.Modificar(pasajero);
        }
        public void TestMethodIngresarVenta()
        {
            var gestorDAO = new GestorDAOSql();
            var ventaDAO = new VentaDAOSql(gestorDAO);

            var empleado = new Empleado();
            empleado.ID = 2;

            var pasajero = new Pasajero();
            pasajero.ID = 3;

            var bus = new Bus();
            bus.ID = 3;

            var conductor = new Conductor();
            conductor.ID = 2;

            var ruta = new Ruta();
            ruta.ID = 1;

            var itinerario = new Itinerario("19/11/2015", "23:30:00", 20, bus, conductor, ruta);
            itinerario.ID = 22;

            var venta = new Venta("23", "1234324", "S99930", itinerario, empleado, pasajero, 30.5m);

            Assert.AreEqual(true, ventaDAO.Ingresar(venta));
        }
        public void TestMethodIngresarPasajero()
        {
            var gestorDAO = new GestorDAOSql();
            var pasajeroDAO = new PasajeroDAOSql(gestorDAO);

            var pasajero = new Pasajero("Lucas Arturo", "León", "Soto", "73666566", "21/07/1994");

            Assert.AreEqual(true, pasajeroDAO.Ingresar(pasajero));
        }
        public void TestMethodModificarPasajero()
        {
            var gestorDAO = new GestorDAOSql();
            var pasajeroDAO = new PasajeroDAOSql(gestorDAO);

            var pasajero = new Pasajero("Lucas", "León", "Soto", "73666566", "21/07/1994");
            pasajero.ID = 12;

            Assert.AreEqual(true, pasajeroDAO.Modificar(pasajero));
        }
 public Venta(string Asiento, string NumeroBoleto, string CodigoSerie, Itinerario Itinerario, Empleado Empleado, Pasajero Pasajero)
 {
     this.ID = 0;
     this.FechaCompra = DateTime.Now.ToShortDateString();
     this.Asiento = Asiento;
     this.NumeroBoleto = NumeroBoleto;
     this.CodigoSerie = CodigoSerie;
     this.Itinerario = Itinerario;
     this.Empleado = Empleado;
     this.Pasajero = Pasajero;
     this.Precio = Itinerario.Precio;
     Estado = true;
 }
        public ActionResult ModificarPasajero(FormCollection frm,Pasajero pasajero)
        {
            //pasajero.ID = Convert.ToInt32(frm["ID"]);
                pasajero.Nombres = frm["Nombres"];
                pasajero.ApellidoPaterno = frm["ApellidoPaterno"];
                pasajero.ApellidoMaterno = frm["ApellidoMaterno"];
                pasajero.Dni = frm["Dni"];
                pasajero.FechaNacimiento = frm["FechaNacimiento"];
                pasajero.Puntos = Convert.ToInt32(frm["Puntos"]);

                Boolean modifico = objGestionarPasajero.Modificar(pasajero);

                if (modifico)
                {
                    return RedirectToAction("GestionarPasajero", "Pasajero", new {mensaje = "Se Modifico correctamente"});
                }
                else
                {
                    return RedirectToAction("GestionarPasajero", "Pasajero", new { mensaje = "No se pudo modificar Pasajero" });
                }
        }
        public Pasajero Buscar(string dni)
        {
            string procedimientoAlmacenado = "sp_BuscarPasajero";
            SqlCommand comando = null;
            Pasajero pasajero = null;

            try
            {
                comando = gestorDAO.ObtenerComandoSP(procedimientoAlmacenado);

                comando.Parameters.AddWithValue("@prmDni", dni);

                gestorDAO.AbrirConexion();

                SqlDataReader dataReader = comando.ExecuteReader();

                if (dataReader.Read())
                {
                    pasajero = new Pasajero(dataReader["Nombres"].ToString(),
                    dataReader["ApellidoPaterno"].ToString(),
                    dataReader["ApellidoMaterno"].ToString(),
                    dataReader["Dni"].ToString(),
                    Convert.ToDateTime(dataReader["FechaNacimiento"]).ToString()

                    );
                }
            }
            catch (SqlException e)
            {

                throw e;
            }
            finally { gestorDAO.CerrarConexion(); }

            return pasajero;
        }
        public bool Modificar(Pasajero pasajero)
        {
            SqlCommand comando = null;
            string procedimientoAlmacenado = "sp_EditarPasajero";

            try
            {
                comando = gestorDAO.ObtenerComandoSP(procedimientoAlmacenado);

                comando.Parameters.AddWithValue("@prmidPasajero", pasajero.ID);
                comando.Parameters.AddWithValue("@prmNombres", pasajero.Nombres);
                comando.Parameters.AddWithValue("@prmApellidoPaterno", pasajero.ApellidoPaterno);
                comando.Parameters.AddWithValue("@prmApellidoMaterno", pasajero.ApellidoMaterno);
                comando.Parameters.AddWithValue("@prmDNI", pasajero.Dni);
                comando.Parameters.AddWithValue("@prmFechaNacimiento", Convert.ToDateTime(pasajero.FechaNacimiento));

                gestorDAO.AbrirConexion();

                if (comando.ExecuteNonQuery() > 0) return true;
            }
            catch (Exception e)
            {

                throw e;
            }

            return false;
        }
        public List<Pasajero> Listar()
        {
            SqlCommand comando = null;
            var listapasajero = new List<Pasajero>();
            string procedimientoAlmacenado = "sp_ListarPasajero";

            try
            {

                comando = gestorDAO.ObtenerComandoSP(procedimientoAlmacenado);

                gestorDAO.AbrirConexion();

                var dataReader = comando.ExecuteReader();

                while (dataReader.Read())
                {

                    var pasajero = new Pasajero(

                        dataReader["Nombres"].ToString(),
                        dataReader["ApellidoPaterno"].ToString(),
                        dataReader["ApellidoMaterno"].ToString(),
                        dataReader["Dni"].ToString(),
                        Convert.ToDateTime(dataReader["FechaNacimiento"]).ToString()

                        );
                    pasajero.ID = Convert.ToInt32(dataReader["idPasajero"]);
                    listapasajero.Add(pasajero);
                }
            }
            catch (Exception e)
            {

                throw e;
            }
            finally { gestorDAO.CerrarConexion(); }

            return listapasajero;
        }
        public bool Ingresar(Pasajero pasajero)
        {
            string procedimientoAlmacenado = "sp_InsertarPasajero";
            SqlCommand comando = null;

            try
            {
                comando = gestorDAO.ObtenerComandoSP(procedimientoAlmacenado);

                comando.Parameters.AddWithValue("@prmNombres", pasajero.Nombres);
                comando.Parameters.AddWithValue("@prmApellidoPaterno", pasajero.ApellidoPaterno);
                comando.Parameters.AddWithValue("@prmApellidoMaterno", pasajero.ApellidoMaterno);
                comando.Parameters.AddWithValue("@prmDNI", pasajero.Dni);
                comando.Parameters.AddWithValue("@prmFechaNacimiento", Convert.ToDateTime(pasajero.FechaNacimiento));
                comando.Parameters.AddWithValue("@prmPuntos", Convert.ToInt32(pasajero.Puntos));

                gestorDAO.AbrirConexion();

                if (comando.ExecuteNonQuery() > 0) return true;
            }
            catch (SqlException e)
            {
                throw e;
            }

            finally { comando.Connection.Close(); }

            return false;
        }
        public List<Venta> Listar()
        {
            SqlCommand comando = null;
            string procedimientoAlmacenado = "sp_ListarTotalVentas";
            var listaVentas = new List<Venta>();
            try
            {
                comando = gestorDAO.ObtenerComandoSP(procedimientoAlmacenado);

                var dataReader = comando.ExecuteReader();

                while (dataReader.Read())
                {
                    var venta = new Venta();

                    var pasajero = new Pasajero();
                    pasajero.Nombres = dataReader[0].ToString();
                    pasajero.ApellidoPaterno = dataReader[1].ToString();
                    pasajero.ApellidoMaterno = dataReader[2].ToString();

                    venta.Pasajero = pasajero;
                    venta.FechaCompra = dataReader[3].ToString();
                    venta.CantidadTotal = Convert.ToDecimal(dataReader[4]);

                    listaVentas.Add(venta);
                }
            }
            catch (SqlException e)
            {

                throw e;
            }

            return listaVentas;
        }
        public List<Venta> MostrarVenta()
        {
            SqlCommand comando = null;
            string procedimientoAlmacenado = "sp_MostrarPasaje";
            var mostrarVenta = new List<Venta>();
            try
            {
                comando = gestorDAO.ObtenerComandoSP(procedimientoAlmacenado);

                var dataReader = comando.ExecuteReader();

                while (dataReader.Read())
                {
                    var pasajero = new Pasajero();
                    pasajero.Nombres = dataReader[14].ToString();
                    pasajero.ApellidoPaterno = dataReader[15].ToString();
                    pasajero.ApellidoMaterno = dataReader[16].ToString();

                    Ciudad origen = new Ciudad();
                    origen.Nombre = dataReader[34].ToString();

                    Ciudad destino = new Ciudad();
                    destino.Nombre = dataReader[37].ToString();

                    Ruta ruta = new Ruta();
                    ruta.Origen = origen;
                    ruta.Destino = destino;

                    Itinerario itinerario = new Itinerario();
                    itinerario.HoraSalida = dataReader[22].ToString();
                    itinerario.Ruta = ruta;

                    Venta venta = new Venta();

                    venta.FechaCompra = dataReader[1].ToString();
                    venta.Asiento = dataReader[2].ToString();
                    venta.NumeroBoleto = dataReader[3].ToString();
                    venta.CodigoSerie = dataReader[4].ToString();
                    venta.Pasajero = pasajero;
                    venta.Itinerario = itinerario;

                    venta.CantidadTotal = Convert.ToDecimal(dataReader["PrecioTotal"]);

                    mostrarVenta.Add(venta);
                }
            }
            catch (SqlException e)
            {

                throw e;
            }

            return mostrarVenta;
        }
        public ActionResult NuevoPasajero(FormCollection frm)
        {
            Pasajero pasajero =new Pasajero();

                pasajero.Nombres = frm["Nombres"];
                pasajero.ApellidoPaterno = frm["ApellidoPaterno"];
                pasajero.ApellidoMaterno = frm["ApellidoMaterno"];
                pasajero.Dni = frm["Dni"];
                pasajero.FechaNacimiento = frm["FechaNacimiento"];
                pasajero.Puntos = Convert.ToInt32(frm["Puntos"]);

                Boolean inserto = objGestionarPasajero.Ingresar(pasajero);
                try
                {

                    if (inserto)
                    {
                        return RedirectToAction("GestionarPasajero", "Pasajero", new { mensaje = "Se registró correctamente." });
                    }
                    else
                    {
                        return RedirectToAction("GestionarPasajero", "Pasajero", new { error = "No se pudo insertar." });
                    }

                }
                catch (ApplicationException ae)
                {
                    return RedirectToAction("GestionarPasajero", "Pasajero", new { error = ae.Message });
                }
                catch (Exception e)
                {
                    return RedirectToAction("Error", "Error", new { error = e.Message });
                }
        }