コード例 #1
0
        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");
            }
        }
コード例 #2
0
        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");
        }
コード例 #3
0
 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);
 }