public Pasaje CancelarPasaje(int idPasaje)
        {
            using (uruguay_busEntities db = new uruguay_busEntities())
            {
                try
                {
                    pasaje pasaje = db.pasaje.FirstOrDefault(x => x.id == idPasaje);

                    if (pasaje == null)
                    {
                        return(null);
                    }

                    Pasaje ret = PasajeConverter.convert(pasaje);

                    db.pasaje.Remove(pasaje);
                    db.SaveChanges();

                    return(ret);
                }
                catch (Exception e)
                {
                    throw e;
                }
            }
        }
        public Pasaje ReservarPasaje(int idViaje, int idParadaOrigen, int idParadaDestino, int idUsuario, int?asiento = null)
        {
            using (uruguay_busEntities db = new uruguay_busEntities())
            {
                try
                {
                    var viaje = db.viaje.FirstOrDefault(x => x.id == idViaje);

                    if (viaje == null)
                    {
                        throw new Exception("No se encontro ningun viaje con ese ID");
                    }

                    if (viaje.horario.linea.tramo.Any(t => t.parada.id == idParadaOrigen) && viaje.horario.linea.tramo.Any(t => t.parada.id == idParadaDestino))
                    {
                        int no = viaje.horario.linea.tramo.Where(t => t.parada.id == idParadaOrigen).First().numero;
                        int nd = viaje.horario.linea.tramo.Where(t => t.parada.id == idParadaDestino).First().numero;
                        if (no >= nd)
                        {
                            throw new Exception("La parada de origen es posterior a la de destino");
                        }
                    }
                    else
                    {
                        throw new Exception("Una o ambas paradas no pertenecen a la linea");
                    }

                    var paradaOri  = db.parada.FirstOrDefault(x => x.id == idParadaOrigen);
                    var paradaDest = db.parada.FirstOrDefault(x => x.id == idParadaDestino);
                    var usuario    = db.usuario.FirstOrDefault(x => x.id == idUsuario);

                    if (usuario == null)
                    {
                        throw new Exception("No se encontro ningun usuario con ese ID");
                    }

                    var pasaje = new pasaje()
                    {
                        //parada_id_destino = idParadaDestino,
                        parada_destino = paradaDest,
                        //parada_id_origen = idParadaOrigen,
                        parada_origen = paradaOri,
                        //viaje_id = idViaje,
                        viaje      = viaje,
                        usuario_id = idUsuario,
                        usuario    = usuario,
                        asiento    = asiento,
                    };
                    db.pasaje.Add(pasaje);
                    db.SaveChanges();
                    return(PasajeConverter.convert(pasaje));
                }
                catch (Exception e)
                {
                    throw e;
                }
            }
        }