/// <summary> /// Setea el estado inicial (dentro/fuera) de todas las geocercas del ticket a partir de la ultima posicion del vehiculo. /// </summary> protected void FirstPosition() { try { var position = DaoFactory.LogPosicionDAO.GetLastOnlineVehiclePosition(Vehiculo); if (position == null) { return; } // Pongo todas las geocercas en Desconocido var geocercas = Geocercas.Select(geocerca => GetKeyGeocerca(geocerca)); foreach (var key in geocercas) { LogicCache.Store(typeof(EstadosEntrega), key, new EstadosEntrega(EstadosGeocerca.Desconocido), DateTime.UtcNow.AddHours(5)); } // Proceso la primera posicion var positionEvent = new PositionEvent(position.FechaMensaje, position.Latitud, position.Longitud); ProcessGeocercas(positionEvent); } catch (Exception ex) { STrace.Exception(typeof(CicloLogisticoFactory).FullName, ex); } }
/// <summary> /// Elimina el estado de todas las geocercas de este ticket de la cache /// </summary> protected void ClearGeocercasCache() { foreach (var key in Geocercas.Select(g => GetKeyGeocerca(g)).Where(key => LogicCache.KeyExists(typeof(EstadosEntrega), key))) { LogicCache.Delete(typeof(EstadosEntrega), key); } }