public async Task <bool> IsBasketValid(string versionId, CancellationToken token) { bool isValid = false; try { var validity = await ApiService.CheckBasketValidity(versionId, token); isValid = validity.IsValid; if (!isValid) { UserDialogs.Error(validity.NotValidMessage); } } catch (ConnectionException ex) { OnConnectionException(ex); } catch (Exception ex) { OnException(ex); } return(isValid); }
protected virtual async Task Purchase() { var oid = await VmService.RegisterOrder(PaymentInfo.Amount, PaymentInfo.Currency == "RUB"? 643 : 0, PaymentInfo.CustomerEmail, PaymentInfo.CustomerPhone, OrderId); if (oid != 0) { PaymentUrl = VmService.GetPurchaseUrl(oid, PaymentInfo.CustomerEmail); } else { await UserDialogs.Error("Не удалось произвести оплату"); } }
protected Task <bool> Operation(int operationId, int orderId) { var tcs = new TaskCompletionSource <bool>(); _best2Pay.Operation(new B2POperationRequest() { ID = orderId, operation = operationId, get_token = !_ePayment }, async(response, error) => { if (response != null && (response.state == "REJECTED" || response.state == "TIMEOUT")) { string errorText = GetErrorText(response.reason_code); if (response.reason_code == 4 || response.reason_code == 5) { //_card = null; } await UserDialogs.Error(errorText ?? $"Не удалось произвести оплату"); tcs.TrySetResult(false); return; } if (error == null) { //if (!_ePayment) //{ ////сохраняем токен //var cardInfo = new CreditCardInfo(); //cardInfo.PAN = response.pan; //cardInfo.Token = response.token; //если нет ошибки, показываем спасибоэкран //OnPaymentCompleted(); //} //else tcs.TrySetResult(true); } else { //иначе показываем пользователю сообщение об ошибке await UserDialogs.Error($"Не удалось произвести оплату"); tcs.TrySetResult(false); } }); return(tcs.Task); }
protected virtual async void OnDeleteReview() { Loading = true; if (await VmService.DeleteReview(ReviewDetails.Id)) { UserDialogs.Alert("Ваш отзыв удален"); Close(this); } else { UserDialogs.Error("Не удалось удалить отзыв"); } Loading = false; }
protected virtual async void OnPostReview() { Loading = true; if (await VmService.PostReview(ReviewId, ProductGroupId, ProductId, ReviewItems.OfType <IReviewParameterItemVm>().ToList())) { ChangePresentation(new NavigateToDefaultViewModelHint()); UserDialogs.Alert("Ваш отзыв отправлен!"); } else { UserDialogs.Error("Не удалось отправить отзыв"); } Loading = false; }
protected virtual async Task ProcessCardPayment(PaymentOrderInfo paymentInfo) { Loading = true; var paymentResult = await VmService.PayWithCard(CardNumber.Without(' '), ExpirationDate, Cvv, CardHolder, paymentInfo.Amount, paymentInfo.Currency, () => { Loading = false; }, OrderId); if (paymentResult.Succeeded) { await PaymentsVmService.OrderPaid(OrderId); } else { await UserDialogs.Error(paymentResult.ErrorMessage.IsNullOrEmtpy()? "Не удалось совершить платеж, проверьте введенные данные. Если ошибка повторится попробуйте совершить платеж позже" : paymentResult.ErrorMessage); } Loading = false; }
public async Task <bool> ValidateAndSaveUserFields(IEnumerable <IOrderFieldsGroupVM> fieldsGroups) { var result = false; try { var fields = fieldsGroups.SelectMany(x => x.Items); var validation = await Mvx.Resolve <IOrderService>().ConfirmUser(fields.ToDictionary(x => x.Id, x => x.Value)); if (validation == null || (validation.NotValidFields.IsNullOrEmpty() && validation.Error.IsNullOrEmtpy())) { result = true; } else { foreach (var notValidField in validation.NotValidFields) { var field = fields.FirstOrDefault(x => x.Id.Equals(notValidField.Id)); field.IsValid = false; } if (!validation.Error.IsNullOrEmpty()) { UserDialogs.Error(validation.Error); } } } catch (ConnectionException ex) { OnConnectionException(ex); } catch (Exception ex) { OnException(ex); } return(result); }
public async Task <bool> ValidateAndSaveDeliveryAddressFields(string deliveryId, MvxObservableCollection <IOrderFieldItemVM> fields) { var result = false; try { var validation = await DeliveryService.ConfirmDeliveryAddress(deliveryId, fields.ToDictionary(x => x.Id, x => x.Value)); if (validation == null || (validation.NotValidFields.IsNullOrEmpty() && validation.Error.IsNullOrEmtpy())) { result = true; } else { foreach (var notValidField in validation.NotValidFields) { var field = fields.FirstOrDefault(x => x.Id.Equals(notValidField.Id)); field.IsValid = false; } if (!validation.Error.IsNullOrEmpty()) { UserDialogs.Error(validation.Error); } } } catch (ConnectionException ex) { OnConnectionException(ex); } catch (Exception ex) { OnException(ex); } return(result); }
protected virtual void OnPaymentFailed() { UserDialogs.Error($"Не удалось оплатить заказ №{OrderId}"); Close(this); }