public BeaconEventType ResolveBeaconState(Beacon b) { lock (KnownBeacons) { if (KnownBeacons.ContainsKey(b)) { KnownBeacons[b] = DateTimeOffset.Now; return(BeaconEventType.None); } KnownBeacons[b] = DateTimeOffset.Now; } return(BeaconEventType.Enter); }
public List <Beacon> ResolveBeaconExits() { lock (KnownBeacons) { DateTimeOffset temp = DateTimeOffset.Now; DateTimeOffset end = DateTimeOffset.Now.AddMilliseconds(-ExitTimeout); List <Beacon> removeBeacons = new List <Beacon>(); foreach (KeyValuePair <Beacon, DateTimeOffset> beacon in KnownBeacons) { if (beacon.Value < end) { removeBeacons.Add(beacon.Key); } } foreach (Beacon b in removeBeacons) { KnownBeacons.Remove(b); } return(removeBeacons); } }