Esempio n. 1
0
        protected void botonEliminar_Click(object sender, EventArgs e)
        {
            var historica = hiddenEliminar.Value.Split(':')[0] == "H";
            var id        = Convert.ToInt32(hiddenEliminar.Value.Split(':')[1]);

            if (historica)
            {
                //var posicion = DAOFactory.LogPosicionHistoricaDAO.FindById(id);
                //if (posicion == null) return;
                //var posicionDescartada = new LogPosicionDescartada(posicion, DiscardReason.Manual);
                //DAOFactory.LogPosicionDescartadaDAO.SaveOrUpdate(posicionDescartada);
                //DAOFactory.LogPosicionHistoricaDAO.Delete(posicion);
            }
            else
            {
                var posicion = DAOFactory.LogPosicionDAO.FindById(id);
                if (posicion == null)
                {
                    return;
                }
                var posicionDescartada = new LogPosicionDescartada(posicion, DiscardReason.Manual);
                DAOFactory.LogPosicionDescartadaDAO.SaveOrUpdate(posicionDescartada);
                DAOFactory.LogPosicionDAO.Delete(posicion);
            }

            LoadPositions(false);
        }
Esempio n. 2
0
        private void LoadPosiciones()
        {
            var posicionDao = DaoFactory.LogPosicionDAO;

            var maxMonths = Vehiculo.Empresa != null ? Vehiculo.Empresa.MesesConsultaPosiciones : 3;

            var t = new TimeElapsed();

            PosicionSiguiente = posicionDao.GetFirstPositionNewerThanDate(Vehiculo.Id, Fin, maxMonths);
            var ts = t.getTimeElapsed().TotalSeconds;

            if (ts > 1)
            {
                STrace.Error("Logictracker.Scheduler.Tasks.Mantenimiento.DatamartGeneration", string.Format("GetFirstPositionNewerThanDate en {0} segundos", ts));
            }

            t.Restart();
            PosicionAnterior = Vehiculo.LastOdometerUpdate.HasValue ? posicionDao.GetFirstPositionOlderThanDate(Vehiculo.Id, Inicio, maxMonths) : null;
            ts = t.getTimeElapsed().TotalSeconds;
            if (ts > 1)
            {
                STrace.Error("Logictracker.Scheduler.Tasks.Mantenimiento.DatamartGeneration", string.Format("GetFirstPositionOlderThanDate en {0} segundos", ts));
            }

            t.Restart();
            var originalPositions = posicionDao.GetPositionsBetweenDates(Vehiculo.Id, Inicio, Fin, maxMonths);

            ts = t.getTimeElapsed().TotalSeconds;
            if (ts > 1)
            {
                STrace.Error("Logictracker.Scheduler.Tasks.Mantenimiento.DatamartGeneration", string.Format("GetPositionsBetweenDates: {0} posiciones en {1} segundos", originalPositions.Count, ts));
            }

            if (Vehiculo.Dispositivo != null && !DaoFactory.DetalleDispositivoDAO.GetDiscardsInvalidPositionsValue(Vehiculo.Dispositivo.Id))
            {
                Posiciones = CorrectGeorefferenciation(originalPositions);
            }
            else
            {
                var cleanPositions    = new List <LogPosicion>();
                var lastValidPosition = PosicionAnterior;
                foreach (var position in originalPositions)
                {
                    if (!EsPosicionValida(lastValidPosition, position))
                    {
                        posicionDao.Delete(position);
                        var discartedPosition = new LogPosicionDescartada(position, DiscardReason.DatamartCleanUp);
                        DaoFactory.LogPosicionDescartadaDAO.Save(discartedPosition);
                    }
                    else
                    {
                        cleanPositions.Add(position);
                        lastValidPosition = position;
                    }
                }
                Posiciones = CorrectGeorefferenciation(cleanPositions);
            }
        }