コード例 #1
0
        /// <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 }),
                    "Уведомление");
            }
        }
コード例 #2
0
 private void OnBeaconFound(BeaconFoundMessage msg)
 {
     PlaceId   = msg.Id;
     PlaceName = msg.Name;
 }