示例#1
0
        private void LlenaItems(InterfaseListaDeElementos laLista)
        {
            // Añade los elementos.
            IDictionary <Vía, IList <BuscadorDePosiblesErroresDeRuteo.ElementoDePosibleErrorDeRuteo> > erroresDeRuteo = miBuscadorDePosiblesErroresDeRuteo.PosiblesErrorDeRuteo;

            foreach (KeyValuePair <Vía, IList <BuscadorDePosiblesErroresDeRuteo.ElementoDePosibleErrorDeRuteo> > ítem in erroresDeRuteo)
            {
                // Crea el grupo.
                Vía           vía   = ítem.Key;
                ListViewGroup grupo = new ListViewGroup(vía.Nombre);
                laLista.Groups.Add(grupo);

                // Añade los elementos de las incongruencia a la lista.
                IList <BuscadorDePosiblesErroresDeRuteo.ElementoDePosibleErrorDeRuteo> elementosDePosibleErrorDeRuteo = ítem.Value;
                foreach (BuscadorDePosiblesErroresDeRuteo.ElementoDePosibleErrorDeRuteo elementoDePosibleErrorDeRuteo in elementosDePosibleErrorDeRuteo)
                {
                    ElementoConEtiqueta elemento = new ElementoConEtiqueta(elementoDePosibleErrorDeRuteo.Vía);
                    // Si el elemento es un posible error entonces le ponemos un fondo amarillo.
                    if (elementoDePosibleErrorDeRuteo.EsPosibleError)
                    {
                        laLista.AñadeItem(elemento, Color.PaleGoldenrod, grupo, elementoDePosibleErrorDeRuteo.Detalle);
                    }
                    else
                    {
                        laLista.AñadeItem(elemento, grupo, elementoDePosibleErrorDeRuteo.Detalle);
                    }
                }
            }
        }
示例#2
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="laVía">La Vía que contiene al nodo.</param>
 /// <param name="elIndice">El índice del nodo en la vía.</param>
 public Nodo(
     Vía laVía,
     int elIndice
     )
 {
     Vía               = laVía;
     Indice            = elIndice;
     EsRuteable        = false;
     CampoNodoRuteable = null;
 }
        private void LlenaItems(InterfaseListaDeElementos laLista)
        {
            // Añade las Vías.
            IDictionary <Vía, string> errores = miBuscadorDeErrores.Errores;

            foreach (KeyValuePair <Vía, string> error in errores)
            {
                Vía    vía   = error.Key;
                string razón = error.Value;
                laLista.AñadeItem(new ElementoConEtiqueta(vía), razón);
            }
        }
示例#4
0
        private void LlenaItems(InterfaseListaDeElementos laLista)
        {
            // Añade los elementos.
            IDictionary <Vía, IList <string> > alertas = miBuscadorDeAlertas.Alertas;

            foreach (KeyValuePair <Vía, IList <string> > ítem in alertas)
            {
                // Crea el grupo.
                Vía vía = ítem.Key;

                // Añade los detalles de la alerta a la lista.
                IList <string> detallesDeAlerta = ítem.Value;
                string         detalle          = string.Join(" | ", detallesDeAlerta.ToArray());
                laLista.AñadeItem(new ElementoConEtiqueta(vía), detalle);
            }
        }
示例#5
0
 private void DibujaNodos(Vía laVía)
 {
     foreach (Nodo nodo in laVía.Nodos)
     {
         if (nodo.EsRuteable)
         {
             miMapa.PuntosAddicionales.Add(new InterfaseMapa.PuntoAdicional(
                                               nodo.Coordenadas,
                                               miPincelDeNodoRuteable,
                                               11));
         }
         else
         {
             miMapa.PuntosAddicionales.Add(new InterfaseMapa.PuntoAdicional(
                                               nodo.Coordenadas,
                                               miPincelDeNodo,
                                               5));
         }
     }
 }
示例#6
0
        /// <summary>
        /// Añade un item a la lista.
        /// </summary>
        /// <param name="elElementoConEtiqueta">El elemento dado.</param>
        /// <param name="elColorDeFondo">El color de fondo.</param>
        /// <param name="elGrupo">El grupo.</param>
        /// <param name="losSubItemsAdicionales">Los textos de los subitems adicionales</param>
        public override void AñadeItem(ElementoConEtiqueta elElementoConEtiqueta, Color elColorDeFondo, ListViewGroup elGrupo, params string[] losSubItemsAdicionales)
        {
            // Verifica que el elemento es una Vía.
            Vía vía = elElementoConEtiqueta.ElementoDelMapa as Vía;

            if (vía == null)
            {
                throw new ArgumentException("El elemento debe ser tipo Vía. pero es " + elElementoConEtiqueta.ElementoDelMapa.GetType());
            }

            // Añade la Vía a la lista.
            List <string> subItems = new List <string> {
                vía.CampoParámetrosDeRuta.LímiteDeVelocidad.ToString(),
                          vía.CampoParámetrosDeRuta.ClaseDeRuta.ToString(),
                          vía.CampoParámetrosDeRuta.ToString()
            };

            subItems.AddRange(losSubItemsAdicionales);

            base.AñadeItem(elElementoConEtiqueta, elColorDeFondo, elGrupo, subItems.ToArray());
        }
示例#7
0
        public void PruebaConstructor()
        {
            // Preparación.
            int                   número           = 12;
            ManejadorDeMapa       manejadorDeMapa  = new ManejadorDeMapa(new EscuchadorDeEstatusPorOmisión());
            string                clase            = "clase";
            string                nombre           = "Nombre";
            string                tipo             = "0xc";
            string                descripción      = "Roundabout";
            CampoParámetrosDeRuta parámetrosDeRuta = new CampoParámetrosDeRuta(
                new LímiteDeVelocidad(2),
                new ClaseDeRuta(3),
                new bool[10]);
            List <Campo> campos = new List <Campo> {
                new CampoNombre(nombre),
                new CampoComentario(";Comentario"),
                new CampoTipo(tipo),
                parámetrosDeRuta
            };

            // Llama al constructor.
            Vía objectoEnPrueba = new Vía(manejadorDeMapa, número, clase, campos);

            // Prueba Propiedades.
            Assert.That(campos, Is.EqualTo(objectoEnPrueba.Campos), "Campos");
            Assert.That(clase, Is.EqualTo(objectoEnPrueba.Clase), "Clase");
            Assert.That(descripción, Is.EqualTo(objectoEnPrueba.Descripción), "Descripción");
            Assert.That(objectoEnPrueba.FuéEliminado, Is.False, "FuéEliminado");
            Assert.That(objectoEnPrueba.FuéModificado, Is.False, "FuéModificado");
            Assert.That(nombre, Is.EqualTo(objectoEnPrueba.Nombre), "Nombre");
            Assert.That(número, Is.EqualTo(objectoEnPrueba.Número), "Número");
            Assert.That(objectoEnPrueba.Original, Is.Null, "Original");
            Assert.That(string.Empty, Is.EqualTo(objectoEnPrueba.RazónParaEliminación), "RazónParaEliminación");
            Assert.That(new Tipo(tipo), Is.EqualTo(objectoEnPrueba.Tipo), "Tipo");
            Assert.That(objectoEnPrueba.CampoParámetrosDeRuta, Is.EqualTo(parámetrosDeRuta), "CampoParámetrosDeRuta");
        }
示例#8
0
        public void PruebaCambiaCampoParámetrosDeRuta()
        {
            #region Caso 1: Vía con Campo de Parámetros de Ruta.
            {
                #region Preparación.
                int             número          = 12;
                ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(new EscuchadorDeEstatusPorOmisión());
                string          clase           = "clase";
                string          nombre          = "Nombre";
                string          tipo            = "0xc";
                string          descripción     = "Roundabout";

                CampoParámetrosDeRuta campoParámetrosDeRuta = new CampoParámetrosDeRuta(
                    new LímiteDeVelocidad(2),
                    new ClaseDeRuta(3),
                    new bool[] { true, false, false, true, true, false, true, true, false, false });

                List <Campo> campos = new List <Campo> {
                    new CampoNombre(nombre),
                    new CampoComentario(";Comentario"),
                    new CampoTipo(tipo),
                    campoParámetrosDeRuta
                };

                // Crea el objeto en prueba.
                Vía             objectoEnPrueba = new Vía(manejadorDeMapa, número, clase, campos);
                ElementoDelMapa víaOriginal     = (ElementoDelMapa)objectoEnPrueba.Clone();

                // Nuevos valores.
                CampoParámetrosDeRuta nuevoCampoParámetrosDeRuta = new CampoParámetrosDeRuta(
                    new LímiteDeVelocidad(5),
                    campoParámetrosDeRuta.ClaseDeRuta,
                    campoParámetrosDeRuta.OtrosParámetros);
                Assert.That(nuevoCampoParámetrosDeRuta, Is.Not.EqualTo(campoParámetrosDeRuta), "El nuevo campo de parámetros de ruta debe ser distinto");
                #endregion

                // Llama al método a probar.
                objectoEnPrueba.CambiaCampoParámetrosDeRuta(nuevoCampoParámetrosDeRuta, "Razón");

                // Prueba Propiedades.
                Assert.That(objectoEnPrueba.Campos, Is.EqualTo(campos), "Campos");
                Assert.That(objectoEnPrueba.Clase, Is.EqualTo(clase), "Clase");
                Assert.That(descripción, Is.EqualTo(objectoEnPrueba.Descripción), "Descripción");
                Assert.That(objectoEnPrueba.FuéEliminado, Is.False, "FuéEliminado");
                Assert.That(objectoEnPrueba.FuéModificado, Is.True, "FuéModificado");
                Assert.That(objectoEnPrueba.Nombre, Is.EqualTo(nombre), "Nombre");
                Assert.That(objectoEnPrueba.Número, Is.EqualTo(número), "Número");
                PruebaElementoDesconocido.AseguraElementoEsEquivalente(víaOriginal, objectoEnPrueba.Original, "Original");
                Assert.That(objectoEnPrueba.RazónParaEliminación, Is.EqualTo(string.Empty), "RazónParaEliminación");
                Assert.That(objectoEnPrueba.Tipo, Is.EqualTo(new Tipo(tipo)), "Tipo");
                Assert.That(objectoEnPrueba.CampoParámetrosDeRuta, Is.EqualTo(nuevoCampoParámetrosDeRuta), "CampoParámetrosDeRuta");
            }
            #endregion

            #region Caso 2: Vía sin Campo de Parámetros de Ruta.
            {
                #region Preparación.
                int             número          = 12;
                ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(new EscuchadorDeEstatusPorOmisión());
                string          clase           = "clase";
                string          nombre          = "Nombre";
                string          tipo            = "0xc";
                string          descripción     = "Roundabout";
                List <Campo>    campos          = new List <Campo> {
                    new CampoNombre(nombre),
                    new CampoComentario(";Comentario"),
                    new CampoTipo(tipo)
                };

                // Crea el objeto en prueba.
                Vía             objectoEnPrueba = new Vía(manejadorDeMapa, número, clase, campos);
                ElementoDelMapa víaOriginal     = (ElementoDelMapa)objectoEnPrueba.Clone();

                // Nuevos valores.
                CampoParámetrosDeRuta nuevoCampoParámetrosDeRuta = new CampoParámetrosDeRuta(
                    new LímiteDeVelocidad(4),
                    new ClaseDeRuta(1),
                    new bool[10]);
                #endregion

                // Llama al método a probar.
                objectoEnPrueba.CambiaCampoParámetrosDeRuta(nuevoCampoParámetrosDeRuta, "Razón");

                // Prueba Propiedades.
                Assert.That(objectoEnPrueba.Campos, Is.EqualTo(campos), "Campos");
                Assert.That(objectoEnPrueba.Clase, Is.EqualTo(clase), "Clase");
                Assert.That(descripción, Is.EqualTo(objectoEnPrueba.Descripción), "Descripción");
                Assert.That(objectoEnPrueba.FuéEliminado, Is.False, "FuéEliminado");
                Assert.That(objectoEnPrueba.FuéModificado, Is.True, "FuéModificado");
                Assert.That(objectoEnPrueba.Nombre, Is.EqualTo(nombre), "Nombre");
                Assert.That(objectoEnPrueba.Número, Is.EqualTo(número), "Número");
                PruebaElementoDesconocido.AseguraElementoEsEquivalente(víaOriginal, objectoEnPrueba.Original, "Original");
                Assert.That(objectoEnPrueba.RazónParaEliminación, Is.EqualTo(string.Empty), "RazónParaEliminación");
                Assert.That(objectoEnPrueba.Tipo, Is.EqualTo(new Tipo(tipo)), "Tipo");
                Assert.That(objectoEnPrueba.CampoParámetrosDeRuta, Is.EqualTo(nuevoCampoParámetrosDeRuta), "CampoParámetrosDeRuta");
            }
            #endregion

            #region Caso 3: Vía con el Mismo Campo de Parámetros de Ruta.
            {
                #region Preparación.
                int             número          = 12;
                ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(new EscuchadorDeEstatusPorOmisión());
                string          clase           = "clase";
                string          nombre          = "Nombre";
                string          tipo            = "0xc";
                string          descripción     = "Roundabout";

                CampoParámetrosDeRuta campoParámetrosDeRuta = new CampoParámetrosDeRuta(
                    new LímiteDeVelocidad(2),
                    new ClaseDeRuta(3),
                    new bool[] { true, false, false, true, true, false, true, true, false, false });

                List <Campo> campos = new List <Campo> {
                    new CampoNombre(nombre),
                    new CampoComentario(";Comentario"),
                    new CampoTipo(tipo),
                    campoParámetrosDeRuta
                };

                // Crea el objeto en prueba.
                Vía objectoEnPrueba = new Vía(manejadorDeMapa, número, clase, campos);
                #endregion

                // Llama al método a probar.
                objectoEnPrueba.CambiaCampoParámetrosDeRuta(campoParámetrosDeRuta, "Razón");

                // Prueba Propiedades.
                Assert.That(objectoEnPrueba.Campos, Is.EqualTo(campos), "Campos");
                Assert.That(objectoEnPrueba.Clase, Is.EqualTo(clase), "Clase");
                Assert.That(descripción, Is.EqualTo(objectoEnPrueba.Descripción), "Descripción");
                Assert.That(objectoEnPrueba.FuéEliminado, Is.False, "FuéEliminado");
                Assert.That(objectoEnPrueba.FuéModificado, Is.False, "FuéModificado");
                Assert.That(objectoEnPrueba.Nombre, Is.EqualTo(nombre), "Nombre");
                Assert.That(objectoEnPrueba.Número, Is.EqualTo(número), "Número");
                Assert.That(objectoEnPrueba.Original, Is.Null, "Original");
                Assert.That(objectoEnPrueba.RazónParaEliminación, Is.EqualTo(string.Empty), "RazónParaEliminación");
                Assert.That(objectoEnPrueba.Tipo, Is.EqualTo(new Tipo(tipo)), "Tipo");
                Assert.That(objectoEnPrueba.CampoParámetrosDeRuta, Is.EqualTo(campoParámetrosDeRuta), "CampoParámetrosDeRuta");
            }
            #endregion
        }
示例#9
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="laVía">La Vía que contiene al nodo.</param>
 /// <param name="elIndice">El índice del nodo en la vía.</param>
 public Nodo(
     Vía laVía,
     int elIndice
     )
 {
     Vía = laVía;
       Indice = elIndice;
       EsRuteable = false;
       CampoNodoRuteable = null;
 }
示例#10
0
        private void EnMenúConectarNodosDesconectados(object elEnviador, EventArgs losArgumentos)
        {
            // Retornamos si no hay Vías seleccionadas.
            int númeroDeNodosDesconectados = miLista.SelectedIndices.Count;

            if (númeroDeNodosDesconectados == 0)
            {
                return;
            }

            if (númeroDeNodosDesconectados > 1)
            {
                // Pregunta si se quiere Estandarizar el Límite de Velocidad.
                DialogResult respuesta = MessageBox.Show(
                    string.Format("Está seguro que quiere conectar los {0} Nodos seleccionados?", númeroDeNodosDesconectados),
                    "Conectar Nodos Desconectados",
                    MessageBoxButtons.YesNo,
                    MessageBoxIcon.Warning);

                if (respuesta != DialogResult.Yes)
                {
                    return;
                }
            }

            #region Conectar Nodos Desconectados.
            ManejadorDeMapa.SuspendeEventos();
            IList <InformaciónNodoDesconectado> posibleNodoDesconectados = miInterfaseListaConMapaDeVías.MenuEditorDeVías.ObtieneEtiquetasSeleccionadas <InformaciónNodoDesconectado>();
            const string razón = "Nodo conectado manualmente.";
            foreach (InformaciónNodoDesconectado posibleNodoDesconectado in posibleNodoDesconectados)
            {
                // Conecta los nodos.
                Vía  vía               = posibleNodoDesconectado.PosibleNodoDesconectado.Vía;
                int  índice            = posibleNodoDesconectado.PosibleNodoDesconectado.Indice;
                Vía  víaDestino        = posibleNodoDesconectado.NodoDestino.Vía;
                int  índiceNodoDestino = posibleNodoDesconectado.NodoDestino.Indice;
                bool laVíaTieneOtroNodoConLasMismasCoordenadas = false;

                #region Cambia las coordenadas del nodo desconectado si no son iguales.
                Coordenadas coordenadasNodo        = posibleNodoDesconectado.PosibleNodoDesconectado.Coordenadas;
                Coordenadas coordenadasNodoDestino = posibleNodoDesconectado.NodoDestino.Coordenadas;
                if (coordenadasNodo != coordenadasNodoDestino)
                {
                    // Antes the cambiar las coordenadas tenemos que asegurarnos que la vía no tiene
                    // otro nodo con esas coordenadas.
                    foreach (Coordenadas coordenadasNodoDeLaVía in vía.Coordenadas)
                    {
                        if (coordenadasNodoDeLaVía == coordenadasNodoDestino)
                        {
                            laVíaTieneOtroNodoConLasMismasCoordenadas = true;
                            break;
                        }
                    }

                    // Si la vía no tiene otro nodo con las mismas coordenadas
                    // entonces lo conectamos.
                    if (!laVíaTieneOtroNodoConLasMismasCoordenadas)
                    {
                        vía.CambiaCoordenadas(
                            coordenadasNodoDestino,
                            índice,
                            razón);
                    }
                }
                #endregion

                // Si la vía tiene otro nodo con las mismas coordenadas
                // entonces avisamos al usuario y no lo conectamos.
                if (laVíaTieneOtroNodoConLasMismasCoordenadas)
                {
                    MessageBox.Show(
                        string.Format("La Vía # {0} tiene otro nodo con las mismas coordenadas ({1}).\nEl nodo no se va a conectar.", vía.Número, coordenadasNodo),
                        "Conecta Nodos Desconectados",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Warning);
                    continue;
                }

                #region Asegurarse que ambos nodos son ruteables.
                Nodo nodo        = vía.Nodos[índice];
                Nodo nodoDestino = víaDestino.Nodos[índiceNodoDestino];

                // Si el posible nodo desconectado es ruteable y el nodo destino
                // no es ruteable entonces usamos el identificador global del
                // posible nodo desconectado para el nodo destino.
                if (nodo.EsRuteable && !nodoDestino.EsRuteable)
                {
                    // Añade el nodo ruteable en la vía destino.
                    víaDestino.AñadeNodoRuteable(
                        índiceNodoDestino,
                        nodo.IdentificadorGlobal,
                        razón);
                }
                // Si el nodo destino es ruteable entonces usamos el identificador
                // global del nodo destino para el nodo desconectado.
                else if (nodoDestino.EsRuteable)
                {
                    // Añade el nodo ruteable en la vía.
                    vía.AñadeNodoRuteable(
                        índice,
                        nodoDestino.IdentificadorGlobal,
                        razón);
                }
                // Si ninguno de los nodos es ruteable entonces generamos un nuevo
                // índentificador global.
                else
                {
                    // Genera un nuevo identificador global.
                    int nuevoIdentificadorGlobal = GeneraNuevoIdentificadorGlobal();

                    // Añade el nodo ruteable a ambas vías.
                    vía.AñadeNodoRuteable(
                        índice,
                        nuevoIdentificadorGlobal,
                        razón);
                    víaDestino.AñadeNodoRuteable(
                        índiceNodoDestino,
                        nuevoIdentificadorGlobal,
                        razón);
                }
                #endregion
            }
            ManejadorDeMapa.RestableceEventos();

            // Notifica la edición.
            miMenú.EnvíaEventoEditó();
            #endregion
        }
示例#11
0
        public void PruebaProcesaCaso1()
        {
            #region Preparación.
            // Crea el objeto a probar.
            IEscuchadorDeEstatus escuchadorDeEstatus = new EscuchadorDeEstatusPorOmisión();
            ManejadorDeMapa      manejadorDeMapa     = new ManejadorDeMapa(escuchadorDeEstatus);
            ManejadorDeVías      manejadorDeVías     = new ManejadorDeVías(manejadorDeMapa, new List <Vía>(), escuchadorDeEstatus, null);
            ArregladorGeneral    objectoDePrueba     = new ArregladorGeneral(manejadorDeVías, escuchadorDeEstatus);

            // Caso de prueba.
            Caso[] casos = new[] {
                //         Nombre, IndicadorDeDirección, UnSoloSentido, IndicadorDeDirecciónEsperado, UnSoloSentidoEsperado
                new Caso("A", "0", false, "0", false),                                                                // Calle doble sentido.
                new Caso("B", "0", true, "1", true),                                                                  // Indicador de dirección = 0.
                new Caso("C", "1", false, "1", true),                                                                 // Falta UnSoloSentido.
                new Caso("D", "1", true, "1", true),                                                                  // Calle un sentido.
                new Caso("E", null, true, "1", true),                                                                 // Falta indicador de dirección.
            };
            const int númeroDeProblemasDetectados = 3;

            // Crea los elementos.
            // Vía típica:
            //   [POLYLINE]
            //   Type=0x2
            //   Label=TRONCAL 9
            //   EndLevel=3
            //   DirIndicator=1
            //   CityIdx=1
            //   RoadID=47
            //   RouteParam=5,3,1,0,0,0,0,0,0,0,0,0
            //   Data0=(10.16300,-66.00000),(10.16199,-65.99850),(10.16010,-65.99591)
            IList <Vía>  vías  = manejadorDeVías.Elementos;
            const string clase = "POI";
            for (int i = 0; i < casos.Length; ++i)
            {
                Caso         caso   = casos[i];
                List <Campo> campos = new List <Campo> {
                    new CampoTipo("0x2"),
                    new CampoNombre(caso.Nombre),
                    new CampoGenérico("EndLevel", "3"),
                    new CampoParámetrosDeRuta(
                        new LímiteDeVelocidad(5),
                        new ClaseDeRuta(3),
                        new[] { caso.UnSoloSentido, false, false, false, false, false, false, false, false, false }),
                    new CampoCoordenadas("Data", 0, new[]
                    {
                        new Coordenadas(10.16300, -66.00000),
                        new Coordenadas(10.16199, -65.99850),
                        new Coordenadas(10.16010, -65.99591),
                    })
                };
                if (caso.IndicadorDeDirección != null)
                {
                    campos.Add(new CampoGenérico(Vía.IdentificadorIndicadorDeDirección, caso.IndicadorDeDirección));
                }

                Vía vía = new Vía(manejadorDeMapa, i, clase, campos);
                vías.Add(vía);
            }
            #endregion

            // Llama al método bajo prueba.
            objectoDePrueba.Procesa();

            // Prueba propiedades.
            Assert.That(objectoDePrueba.NúmeroDeElementos, Is.EqualTo(vías.Count), "NúmeroDeElementos");
            Assert.That(objectoDePrueba.NúmeroDeProblemasDetectados, Is.EqualTo(númeroDeProblemasDetectados), "NúmeroDeProblemasDetectados");

            // Prueba los nobres de los PDIs.
            for (int i = 0; i < casos.Length; ++i)
            {
                Assert.That(vías[i].CampoParámetrosDeRuta.OtrosParámetros[0], Is.EqualTo(casos[i].UnSoloSentidoEsperado), "Vía[" + i + "].OtrosParámetros[0]");
                Assert.That(vías[i].CampoIndicadorDeDirección, Is.Not.Null, "Vía[" + i + "].CampoIndicadorDeDirección");
                Assert.That(vías[i].CampoIndicadorDeDirección.Texto, Is.EqualTo(casos[i].IndicadorDeDirecciónEsperado), "Vía[" + i + "].CampoIndicadorDeDirección.Texto");
            }
        }