Example #1
0
        public static TerminalBE ObtenerTerminalCercana(TerminalBE terminalReferencia, int indiceCercania)
        {
            if (terminales == null)
            {
                terminales = TerminalDAL.ListarTodas();
            }

            if (indiceCercania >= terminales.Count - 1)
            {
                return(null);
            }

            GeoCoordinate ubicacion = new GeoCoordinate(terminalReferencia.Latitud, terminalReferencia.Longitud);

            // Las ordeno por distancia
            List <TerminalBE> terminalesOrdenadas = terminales.Where(t => t.Id != terminalReferencia.Id).Select(t => new
            {
                Distancia = ubicacion.GetDistanceTo(new GeoCoordinate(t.Latitud, t.Longitud)),
                Terminal  = t
            }).OrderBy(x => x.Distancia).Select(x => x.Terminal).ToList();

            return(terminalesOrdenadas[indiceCercania]);
        }
Example #2
0
 public static TerminalBE Obtener(int id)
 {
     return(TerminalDAL.Obtener(id));
 }