private void UpdateVigencia(ImportDireccion row, ReferenciaGeografica referencia) { if (row.VigenciaDesde2.HasValue || row.VigenciaHasta2.HasValue) { if (referencia.Vigencia == null) { referencia.Vigencia = new Vigencia { Inicio = row.VigenciaDesde2, Fin = row.VigenciaHasta2 }; } else if (!referencia.Vigencia.Vigente(DateTime.UtcNow)) { referencia.Vigencia = new Vigencia { Inicio = row.VigenciaDesde2, Fin = row.VigenciaHasta2 }; } else { var desde = row.VigenciaDesde2.HasValue ? row.VigenciaDesde2.Value : DateTime.MaxValue; if (referencia.Vigencia.Inicio.HasValue && referencia.Vigencia.Inicio.Value < desde) { desde = referencia.Vigencia.Inicio.Value; } if (desde == DateTime.MaxValue) { desde = DateTime.UtcNow; } var hasta = row.VigenciaHasta2.HasValue ? row.VigenciaHasta2.Value : DateTime.MinValue; if (referencia.Vigencia.Fin.HasValue && referencia.Vigencia.Fin.Value > hasta) { hasta = referencia.Vigencia.Fin.Value; } if (hasta == DateTime.MinValue) { hasta = DateTime.UtcNow; } referencia.Vigencia = new Vigencia { Inicio = desde, Fin = hasta }; } DAOFactory.ReferenciaGeograficaDAO.SingleSaveOrUpdate(referencia); STrace.Trace("QtreeReset", "DireccionImport 1"); } }
private void CreateReferencia(ImportDireccion datos, DireccionVO direccion) { var codigo = datos.Codigo.Trim(); var referencia = DAOFactory.ReferenciaGeograficaDAO.FindByCodigo(new [] { cbEmpresa.Selected }, new[] { cbLinea.Selected }, new[] { cbTipoGeoRef.Selected }, codigo); var linea = cbLinea.Selected > 0 ? DAOFactory.LineaDAO.FindById(cbLinea.Selected) : null; var empresa = linea != null ? linea.Empresa : cbEmpresa.Selected > 0 ? DAOFactory.EmpresaDAO.FindById(cbEmpresa.Selected) : null; int radio; if (!int.TryParse(txtRadio.Text, out radio)) { radio = 100; } var tipo = DAOFactory.TipoReferenciaGeograficaDAO.FindById(cbTipoGeoRef.Selected); if (referencia == null) { referencia = new ReferenciaGeografica { Codigo = codigo, Empresa = empresa, Linea = linea, EsFin = tipo.EsFin, EsInicio = tipo.EsInicio, EsIntermedio = tipo.EsIntermedio, Icono = tipo.Icono, InhibeAlarma = tipo.InhibeAlarma, TipoReferenciaGeografica = tipo, Color = tipo.Color }; foreach (TipoReferenciaVelocidad maxima in tipo.VelocidadesMaximas) { referencia.VelocidadesMaximas.Add(new ReferenciaVelocidad { ReferenciaGeografica = referencia, TipoVehiculo = maxima.TipoVehiculo, VelocidadMaxima = maxima.VelocidadMaxima }); } } referencia.Baja = false; referencia.Descripcion = datos.Descripcion.Trim(); referencia.Observaciones = string.Empty; UpdateVigencia(datos, referencia); var dir = new Direccion { Altura = direccion != null ? direccion.Altura : -1, Calle = direccion != null ? direccion.Calle : string.Empty, Descripcion = direccion != null ? direccion.Direccion : string.Empty, IdCalle = direccion != null ? direccion.IdPoligonal : -1, IdEntrecalle = -1, IdEsquina = direccion != null ? direccion.IdEsquina : -1, IdMapa = direccion != null ? (short)direccion.IdMapaUrbano : (short)-1, Latitud = direccion != null ? direccion.Latitud : Convert.ToDouble(datos.Latitud), Longitud = direccion != null ? direccion.Longitud : Convert.ToDouble(datos.Longitud), Pais = "Argentina", Partido = direccion != null ? direccion.Partido : string.Empty, Provincia = direccion != null ? direccion.Provincia : string.Empty, Vigencia = new Vigencia { Inicio = DateTime.Now } }; var pol = new Poligono { Radio = radio, Vigencia = new Vigencia { Inicio = DateTime.Now } }; pol.AddPoints(new[] { new PointF((float)dir.Longitud, (float)dir.Latitud) }); referencia.AddHistoria(dir, pol, DateTime.UtcNow); DAOFactory.ReferenciaGeograficaDAO.SingleSaveOrUpdate(referencia); STrace.Trace("QtreeReset", "DireccionImport 2"); }
private void Log(string status, ImportDireccion row) { lblResult.Text += string.Format(Result, status, row.Descripcion, row.Codigo, row.Calle, row.Altura, row.Esquina, row.Partido, row.Provincia); }