Пример #1
0
        public static List<Trayecto> CrearListadoTrayectos(List<Parada> listParadas, int cuposDisponibles)
        {
            var listTrayectos = new List<Trayecto>();

            for (var i = 0; i < listParadas.Count - 1; i++)
            {

                for (var j = i + 1; j < listParadas.Count; j++)
                {

                    var trayectoActual = new Trayecto {TrayectoSimple = j - i == 1};

                    var paradaOrigen = new Parada
                                           {
                                               Latitud = Math.Round(Convert.ToDecimal(listParadas[i].Latitud), 6),
                                               Longitud = Math.Round(Convert.ToDecimal(listParadas[i].Longitud), 6),
                                               Direccion = listParadas[i].Direccion,
                                               NumeroParada = i+1,
                                               TipoParada = "I"
                                           };

                    var paradaDestino = new Parada
                                            {
                                                Latitud = Math.Round(Convert.ToDecimal(listParadas[j].Latitud), 6),
                                                Longitud = Math.Round(Convert.ToDecimal(listParadas[j].Longitud), 6),
                                                Direccion = listParadas[j].Direccion,
                                                NumeroParada = j+1,
                                                TipoParada = "F"

                                            };

                    trayectoActual.ParadaOrigen = paradaOrigen;
                    trayectoActual.ParadaDestino = paradaDestino;

                    trayectoActual.CuposDisponibles = cuposDisponibles;
                    listTrayectos.Add(trayectoActual);
                }
            }
            return listTrayectos;
        }
 //Busca la lista de trayectos que deben ser modificados en terminos de cupos, dado que se acepte una
 //solicitud para un trayecto simple
 private static List<Trayecto> DeterminarTrayectosAfectosTryS(Viaje pViaje, Trayecto pTrayectoSeleccionado)
 {
     var iParadaOrigen = pTrayectoSeleccionado.ParadaOrigen.NumeroParada;
     var iParadaDestino = pTrayectoSeleccionado.ParadaDestino.NumeroParada;
     return (from trayectoViaje in pViaje.TrayectosViaje
             let tempOrigen = trayectoViaje.ParadaOrigen.NumeroParada
             let tempDestino = trayectoViaje.ParadaDestino.NumeroParada
             where (iParadaOrigen > tempOrigen && iParadaOrigen < tempDestino) ||
                   (iParadaDestino > tempOrigen && iParadaDestino < tempDestino)
             select trayectoViaje).ToList();
 }
 //Busca la lista de trayectos que deben ser modificados en terminos de cupos, dado que se acepte una
 //solicitud para un trayecto compuesto
 private List<Trayecto> DeterminarTrayectosAfectosTryC(Viaje pViaje, Trayecto pTrayectoSeleccionado)
 {
     var trayectoAlgoritmoSimple = DeterminarTrayectosAfectosTryS(pViaje, pTrayectoSeleccionado);
     var trayectosPendientes = pViaje.TrayectosViaje.Except(trayectoAlgoritmoSimple);
     var iParadaOrigen = pTrayectoSeleccionado.ParadaOrigen.NumeroParada;
     var iParadaDestino = pTrayectoSeleccionado.ParadaDestino.NumeroParada;
     var listResult = (from trayectoViaje in trayectosPendientes
                       let tempOrigen = trayectoViaje.ParadaOrigen.NumeroParada
                       let tempDestino = trayectoViaje.ParadaDestino.NumeroParada
                       where (tempOrigen > iParadaOrigen && tempOrigen < iParadaDestino) ||
                             (tempDestino > iParadaOrigen && tempDestino < iParadaDestino)
                       select trayectoViaje).ToList();
     listResult.AddRange(trayectoAlgoritmoSimple);
     return listResult;
 }
Пример #4
0
 public TRAYECTO ToTrayecto(Trayecto pTrayecto)
 {
     var listParadas = new List<Parada> {pTrayecto.ParadaOrigen, pTrayecto.ParadaDestino};
     return new TRAYECTO()
         {
             CUPOS = pTrayecto.CuposDisponibles,
             ID_TRAYECTO = pTrayecto.IdTrayecto,
             ID_VIAJE = pTrayecto.IdViaje,
             SOLICITUD = (pTrayecto.ListaSolicitudes != null)?pTrayecto.ListaSolicitudes.Select(ToSolicitud).ToList(): null,
             PARADA = ToParadas(listParadas)
         };
 }