// **** **** Inicio de seccion de Juan **** ****

        // GET: Usuario/ComprarPasaje
        public async Task <ActionResult> ComprarPasaje()
        {
            ComprarPasajeModel cpm = new ComprarPasajeModel();

            cpm.fecha  = DateTime.Today;
            cpm.lineas = (List <Share.Entities.Linea>) await gp.ListarLinea();

            cpm.precioElegirAsiento = await up.PrecioParaElegirAsiento();

            return(View(cpm));
        }
        public async Task <ActionResult> ComprarPasaje(ComprarPasajeModel cpm)
        {
            try
            {
                cpm.lineas = (List <Share.Entities.Linea>) await gp.ListarLinea();

                cpm.precioElegirAsiento = await up.PrecioParaElegirAsiento();

                // calidacion
                if (!TryValidateModel(cpm, nameof(ComprarPasaje)))
                {
                    return(View(cpm));
                }

                ConfirmarPagoModel confPago = new ConfirmarPagoModel()
                {
                    fecha               = cpm.fecha,
                    idViaje             = cpm.idViaje,
                    idLinea             = cpm.idLinea,
                    idParadaOrigen      = cpm.idParadaOrigen,
                    idParadaDestino     = cpm.idParadaDestino,
                    asiento             = cpm.asiento,
                    precio              = cpm.precio,
                    nombreLinea         = Task.Run(() => gp.obtenerLinea(cpm.idLinea)).Result.nombre,
                    nombreParadaOrigen  = Task.Run(() => gp.obtenerParada(cpm.idParadaOrigen)).Result.nombre,
                    nombreParadaDestino = Task.Run(() => gp.obtenerParada(cpm.idParadaDestino)).Result.nombre,
                    hora = Task.Run(() => gp.obtenerViaje(cpm.idViaje)).Result.horario.hora,
                };

                return(View("ConfirmarPago", confPago));
            }
            catch (Exception)
            {
                return(View(cpm));
            }
        }