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