/// <summary> /// Вызывается, когда рядом находится маячок /// </summary> /// <param name="msg">Сообщение <see cref="Demo.Core.Messages.BeaconFoundMessage"/>.</param> private void OnBeaconIsNear(BeaconFoundMessage msg) { //Проверяем, что найденный маячок "наш", т.е. находится в списке загруженных с сервера var beacon = Beacons.FirstOrDefault(x => x.UUID.ToLower() == msg.UUID.ToLower() && x.Major == msg.Major && x.Minor == msg.Minor); if (beacon != null) { //Скрываем индикатор загрузки, ведь поиск уже закончен Loading = false; //Останавливаем поиск маячков Mvx.Resolve <IBeaconService>().Stop(); //Отписываемся от подписки на сообщения BeaconFoundMessage Messenger.Unsubscribe <BeaconFoundMessage>(_beaconToken); //Пишем в output какой маячок мы нашли Mvx.Resolve <IMvxTrace>().Trace(MvxTraceLevel.Diagnostic, "Beacon", string.Format("Current Beacon {0} - {1} - {2}", beacon.UUID, beacon.Major, beacon.Minor)); //Показываем пользователю диалог о том, что мы нашли для него интересное предложение UserInteractions.Alert( "Персональное предложение! Специально для Вас товар со скидкой!", () => ShowViewModel <ProductViewModel>(new { id = beacon.ID }), "Уведомление"); } }
private void OnBeaconFound(BeaconFoundMessage msg) { PlaceId = msg.Id; PlaceName = msg.Name; }