示例#1
0
 public PoligonalVO(Poligonal poligonal)
 {
     this.Id             = poligonal.PolId;
     this.Nombre         = poligonal.NombreLargo;
     this.NombreCorto    = poligonal.NombreCorto;
     this.Partido        = poligonal.Partido.Nombre;
     this.Provincia      = poligonal.Partido.Provincia.Nombre;
     this.AlturaInicial  = poligonal.AlturaMinima;
     this.AlturaFinal    = poligonal.AlturaMaxima;
     this.IdMapaUrbano   = poligonal.MapId;
     this.Tipo           = poligonal.Nivel.ToString();
     this.IdPartido      = poligonal.Partido.PolId;
     this.IdMapProvincia = poligonal.Partido.Provincia.MapId;
 }
示例#2
0
        public IList <ObjetoPuntuado <DireccionVO> > NomenclarDireccionSmart(ParsedDirection direccion)
        {
            List <ObjetoPuntuado <DireccionVO> >  list = new List <ObjetoPuntuado <DireccionVO> >();
            IList <ObjetoPuntuado <DireccionVO> > result;

            if (string.IsNullOrEmpty(direccion.Calle.Trim()) || (direccion.Altura <= 0 && string.IsNullOrEmpty(direccion.Esquina.Trim())))
            {
                result = list;
            }
            else
            {
                double            num   = 0.0;
                double            num2  = 0.0;
                double            num3  = 0.0;
                double            item  = 0.0;
                IList <Provincia> list2 = null;
                IList <Partido>   list3 = null;
                if (!string.IsNullOrEmpty(direccion.Provincia.Trim()))
                {
                    Tokenizer         tokenizer  = Tokenizer.FromString(direccion.Provincia, 0);
                    IList <Provincia> provincias = base.DAOFactory.ProvinciaDAO.GetProvincias(tokenizer.ToArray());
                    list2 = Cleaning.Nomenclar <Provincia>(tokenizer, provincias, out num);
                    if (!string.IsNullOrEmpty(direccion.Localidad))
                    {
                        Tokenizer      tokenizer2 = Tokenizer.FromString(direccion.Localidad, 1);
                        List <Partido> list4      = new List <Partido>();
                        foreach (Provincia current in provincias)
                        {
                            list4.AddRange(base.DAOFactory.PartidoDAO.GetEnProvincia(tokenizer2.ToArray(), current.MapId));
                        }
                        List <int> list5 = new List <int>();
                        list3 = Cleaning.Nomenclar <Partido>(tokenizer2, list4, out num2);
                        foreach (Partido current2 in list3)
                        {
                            list5.Add(current2.Id);
                        }
                        List <Localidad> list6 = new List <Localidad>();
                        list6.AddRange(base.DAOFactory.LocalidadDAO.GetByProvincia(tokenizer2.ToArray(), -1));
                        IList <Localidad> list7 = Cleaning.Nomenclar <Localidad>(tokenizer2, list6, out num3);
                        foreach (Localidad current3 in list7)
                        {
                            if (!list5.Contains(current3.Partido.Id))
                            {
                                list3.Add(current3.Partido);
                                list5.Add(current3.Partido.Id);
                            }
                        }
                    }
                }
                else
                {
                    if (!string.IsNullOrEmpty(direccion.Localidad))
                    {
                        Tokenizer      tokenizer2 = Tokenizer.FromString(direccion.Localidad, 1);
                        List <Partido> list4      = new List <Partido>();
                        list4.AddRange(base.DAOFactory.PartidoDAO.GetEnProvincia(tokenizer2.ToArray(), -1));
                        List <int> list5 = new List <int>();
                        list3 = Cleaning.Nomenclar <Partido>(tokenizer2, list4, out num2);
                        foreach (Partido current2 in list3)
                        {
                            list5.Add(current2.Id);
                        }
                        List <Localidad> list6 = new List <Localidad>();
                        list6.AddRange(base.DAOFactory.LocalidadDAO.GetByProvincia(tokenizer2.ToArray(), -1));
                        IList <Localidad> list7 = Cleaning.Nomenclar <Localidad>(tokenizer2, list6, out num3);
                        foreach (Localidad current3 in list7)
                        {
                            if (!list5.Contains(current3.Partido.Id))
                            {
                                list3.Add(current3.Partido);
                                list5.Add(current3.Partido.Id);
                            }
                        }
                    }
                }
                Tokenizer        tokenizer3 = Tokenizer.FromString(direccion.Calle, 3);
                List <Poligonal> list8      = new List <Poligonal>();
                List <double>    list9      = new List <double>();
                if (list3 != null)
                {
                    foreach (Partido current2 in list3)
                    {
                        IList <Poligonal> enPartidoYProvincia = base.DAOFactory.PoligonalDAO.GetEnPartidoYProvincia(tokenizer3.ToArray(), current2.PolId, current2.Provincia.MapId);
                        IList <Poligonal> list10 = Cleaning.NomenclarAmbiguo <Poligonal>(tokenizer3, enPartidoYProvincia, out item);
                        list8.AddRange(list10);
                        for (int i = 0; i < list10.Count; i++)
                        {
                            list9.Add(item);
                        }
                    }
                }
                else
                {
                    if (list2 != null)
                    {
                        foreach (Provincia current in list2)
                        {
                            IList <Poligonal> enPartidoYProvincia = base.DAOFactory.PoligonalDAO.GetEnPartidoYProvincia(tokenizer3.ToArray(), -1, current.MapId);
                            IList <Poligonal> list10 = Cleaning.NomenclarAmbiguo <Poligonal>(tokenizer3, enPartidoYProvincia, out item);
                            list8.AddRange(list10);
                            for (int i = 0; i < list10.Count; i++)
                            {
                                list9.Add(item);
                            }
                        }
                    }
                    else
                    {
                        IList <Poligonal> enPartidoYProvincia = base.DAOFactory.PoligonalDAO.GetEnPartidoYProvincia(tokenizer3.ToArray(), -1, -1);
                        IList <Poligonal> list10 = Cleaning.NomenclarAmbiguo <Poligonal>(tokenizer3, enPartidoYProvincia, out item);
                        list8.AddRange(list10);
                        for (int i = 0; i < list10.Count; i++)
                        {
                            list9.Add(item);
                        }
                    }
                }
                if (direccion.Altura > 0)
                {
                    for (int i = 0; i < list8.Count; i++)
                    {
                        Poligonal poligonal = list8[i];
                        if (poligonal.AlturaMinima - 1 <= direccion.Altura && poligonal.AlturaMaxima >= direccion.Altura)
                        {
                            DireccionVO direccionVO = base.ValidarAltura(poligonal.PolId, direccion.Altura, poligonal.MapId);
                            if (direccionVO != null)
                            {
                                list.Add(new ObjetoPuntuado <DireccionVO>(num + num2 + list9[i], direccionVO));
                            }
                        }
                    }
                }
                else
                {
                    List <double>    list11     = new List <double>();
                    List <Poligonal> list12     = new List <Poligonal>();
                    Tokenizer        tokenizer4 = Tokenizer.FromString(direccion.Esquina, 3);
                    if (list3 != null)
                    {
                        foreach (Partido current2 in list3)
                        {
                            IList <Poligonal> enPartidoYProvincia2 = base.DAOFactory.PoligonalDAO.GetEnPartidoYProvincia(tokenizer4.ToArray(), current2.PolId, current2.Provincia.MapId);
                            double            item2;
                            IList <Poligonal> list10 = Cleaning.NomenclarAmbiguo <Poligonal>(tokenizer4, enPartidoYProvincia2, out item2);
                            list12.AddRange(list10);
                            for (int i = 0; i < list10.Count; i++)
                            {
                                list11.Add(item2);
                            }
                        }
                    }
                    else
                    {
                        if (list2 != null)
                        {
                            foreach (Provincia current in list2)
                            {
                                IList <Poligonal> enPartidoYProvincia2 = base.DAOFactory.PoligonalDAO.GetEnPartidoYProvincia(tokenizer4.ToArray(), -1, current.MapId);
                                double            item2;
                                IList <Poligonal> list10 = Cleaning.NomenclarAmbiguo <Poligonal>(tokenizer4, enPartidoYProvincia2, out item2);
                                list12.AddRange(list10);
                                for (int i = 0; i < list10.Count; i++)
                                {
                                    list11.Add(item2);
                                }
                            }
                        }
                        else
                        {
                            IList <Poligonal> enPartidoYProvincia2 = base.DAOFactory.PoligonalDAO.GetEnPartidoYProvincia(tokenizer4.ToArray(), -1, -1);
                            double            item2;
                            IList <Poligonal> list10 = Cleaning.NomenclarAmbiguo <Poligonal>(tokenizer4, enPartidoYProvincia2, out item2);
                            list12.AddRange(list10);
                            for (int i = 0; i < list10.Count; i++)
                            {
                                list11.Add(item2);
                            }
                        }
                    }
                    for (int i = 0; i < list8.Count; i++)
                    {
                        Poligonal poligonal = list8[i];
                        for (int j = 0; j < list12.Count; j++)
                        {
                            Poligonal poligonal2 = list12[j];
                            if (poligonal.MapId == poligonal2.MapId)
                            {
                                DireccionVO direccionVO = base.ValidarCruce(poligonal.PolId, poligonal2.PolId, poligonal.MapId);
                                if (direccionVO != null)
                                {
                                    list.Add(new ObjetoPuntuado <DireccionVO>(num + num2 + (list9[i] + list11[j]) / 2.0, direccionVO));
                                }
                            }
                        }
                    }
                }
                result = list;
            }
            return(result);
        }