Example #1
0
        public async Task OnBeaconEvent(BeaconEventArgs eventArgs)
        {
            try
            {
                Beacon beacon = eventArgs.Beacon;

                if (eventArgs.EventType != BeaconEventType.None)
                {
                    Logger.Debug("MainPage.OnBeaconEventAsync: '" + eventArgs.EventType + "' event from " + beacon);
                }

                bool isExistingBeacon = false;

                if (BeaconModel.Contains(beacon))
                {
                    if (eventArgs.EventType == BeaconEventType.Exit)
                    {
                        await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Low, () => BeaconModel.Remove(beacon));
                    }
                    else
                    {
                        BeaconModel.AddOrReplace(beacon);
                    }

                    isExistingBeacon = true;
                }

                if (!isExistingBeacon)
                {
                    BeaconModel.AddOrReplace(beacon);
                }
            }
            catch (Exception e)
            {
                Logger.Error("Error while add/update beacon", e);
            }
        }