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; }
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); }