private async Task LoadContent(int id) { Loading = true; try { Bundle = await Mvx.Resolve <IWebService>().LoadProductCard(id); if (Bundle != null) { ShopName = Bundle.ShopName; ProductName = Bundle.Name; Price = Bundle.Price.ToPriceString(); if (Bundle.OldPrice != null && Bundle.OldPrice.HasValue) { OldPrice = Bundle.OldPrice.Value.ToPriceString(); } } else { UserInteractions.Alert("Не удалось загрузить подробную информацию", title: "Ошибка"); } } catch (Exception ex) { UserInteractions.Alert(ex.Message ?? "Не удалось загрузить подробную информацию", title: "Ошибка"); } finally { Loading = false; } }
/// <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 }), "Уведомление"); } }
/// <summary> /// Запускает загрузку доступных маячков и начинает поиск ближайших /// </summary> private async void StartLoadAndSearchBeacons() { //Отображаем индикатор загрузки Loading = true; try { //Получаем экземпляр сервиса IWebService и загружаем доступные маячки Beacons = await Mvx.Resolve <IWebService>().LoadBeacons(); if (Beacons.IsNullOrEmpty()) { return; } //Подписываемся на сообщение о том, что рядом был обнаружен маячок _beaconToken = Messenger.Subscribe <BeaconFoundMessage>(OnBeaconIsNear); //Начинаем поиск маячков рядом с пользователем Mvx.Resolve <IBeaconService>().Start(Beacons); } catch (Exception ex) { //Что-то пошло не так – отображаем пользователю соответствующий диалог UserInteractions.Alert(ex.Message ?? "Не удалось найти ни одного маячка рядом, попробуйте в другом месте", title: "Ошибка"); //Скрываем индикатор загрузки Loading = false; } }
private async void LoadContent() { Loading = true; try { var instance = new YaMoneyInstance { InstanceID = "Raqlr8fgDFqlICSixvkEk1g4wgjUhaQCDXqSHAcM6ImWEWwzjpsGC4sp9dpR37Xq" }; // var instance = await Mvx.Resolve<IYaMoneyService>().LoadMoneyInstance (); var request = await Mvx.Resolve <IYaMoneyService>().LoadMoneyRequest(instance.InstanceID, ProductCard.YaMoney, ProductCard.Price); var process = await Mvx.Resolve <IYaMoneyService>().LoadMoneyProcess(request.RequestID, instance.InstanceID); var hiddenParams = new StringBuilder(); foreach (var acsParam in process.YaMoneyACSParams) { hiddenParams.AppendFormat("<input type=\"hidden\" name=\"{0}\" value=\"{1}\" />", acsParam.Key, acsParam.Value); } HtmlText = string.Format(pageFormat, process.ASCUri, hiddenParams); } catch (Exception ex) { UserInteractions.Alert(ex.Message ?? "Не удалось провести платеж", title: "Ошибка"); } finally { Loading = false; } }
public async void PaymentFailed() { Order.Status = Status.Fail; try { var order = await Mvx.Resolve <IWebService>().SendOrderWithStatus(Order); UserInteractions.Alert("Не удалось совершить платеж", title: "Ошибка"); } catch (Exception ex) { UserInteractions.Alert(ex.Message, title: "Ошибка"); } }
public async void PaymentSucceeded() { Order.Status = Status.Success; try { var order = await Mvx.Resolve <IWebService>().SendOrderWithStatus(Order); ShowViewModel <ThanksViewModel>(new { product = JsonConvert.SerializeObject(ProductCard), order = JsonConvert.SerializeObject(order) }); } catch (Exception ex) { UserInteractions.Alert(ex.Message, title: "Ошибка"); } }