private DTOnextBus notificacionProximidad2(EParada Eparada, int viaje, TimeSpan hora) { int Parada = Eparada.IdParada; ESalida salida = iSalida.getSalidas(iViaje.getViaje(viaje).IdSalida); string matric = iVehiculo.getVehiculos(salida.IdVehiculo).Matricula; DTOnextBus nextBus = new DTOnextBus(); if (isFinalParada(Parada, viaje)) { nextBus.matricula = "N/A"; nextBus.parada = "N/A"; nextBus.hora = "N/A"; return(nextBus); } int idNextP = nextParadaNot(Parada, viaje); int tiempo = iTramo.getTramos(salida.IdLinea, idNextP).TiempoEstimado; TimeSpan minutes = TimeSpan.FromMinutes(tiempo); string horastr = hora.Add(minutes).ToString(); nextBus.parada = iParada.getParada(idNextP).Nombre; nextBus.matricula = matric; nextBus.hora = horastr; return(nextBus); }
/// <summary> /// /// </summary> /// <param name="idUsuario"></param> /// <param name="idParada">Que no sea la terminal</param> /// <returns></returns> public List <DTOproxVehiculo> proximoVehiculo(int idUsuario, int idParada) { List <DTOproxVehiculo> proxVs = new List <DTOproxVehiculo>(); EParada ep = iParada.getParada(idParada); List <ETramo> tramos = ep.Tramo.ToList(); // lista de tramos List <int> idLineas = new List <int>(); foreach (var t in tramos) { idLineas.Add(t.IdLinea); } idLineas.Distinct(); // lista de lineas int ord = 0; int idpa = 0; List <EParada> paradasAnteriores = new List <EParada>(); foreach (var idL in idLineas) { ord = iTramo.getTramos(idL, idParada).Orden - 1; if (ord == 0) { throw new Exception("La parada no puede ser la terminal"); } idpa = getOrd(iLinea.getLinea(idL).Tramo.ToList(), ord); paradasAnteriores.Add(iParada.getParada(idpa)); } //lista de viajes de una parada hordendaos por hora List <EViaje> viajes = new List <EViaje>(); foreach (var par in paradasAnteriores) { foreach (var ll in par.Llegada) { if (ultimaParada(ll.idViaje) != iParada.getParada(idParada)) { viajes.Add(iViaje.getViaje(ll.idViaje)); } } } List <EViaje> misViajs = new List <EViaje>(); EUsuario usuario = iUsuario.getUsuario(idUsuario); if (usuario == null) { return(null); } foreach (var pasaje in iUsuario.getUsuario(idUsuario).Pasaje.ToList()) { misViajs.Add(iViaje.getViaje(pasaje.IdViaje)); } foreach (var viaje in viajes) { foreach (var miV in misViajs) { DTOproxVehiculo proxV = new DTOproxVehiculo(); proxV.linea = iLinea.getLinea(iSalida.getSalidas(miV.IdSalida).IdLinea).Nombre; proxV.Vehiculo = iVehiculo.getVehiculos(iSalida.getSalidas(viaje.IdSalida).IdVehiculo); if (viaje.IdViaje == miV.IdViaje) { proxV.reservado = true; } else { proxV.reservado = false; } proxVs.Add(proxV); } } List <DTOproxVehiculo> proximos = proxVs .GroupBy(p => p.Vehiculo.Matricula) .Select(g => g.First()) .ToList(); return(proximos); }
public ETramo getTramo(int IdParada, int IdLinea) { return(iTramo.getTramos(IdLinea, IdLinea)); }