public void ClearPaymentSettingsFromCache() { // this forces the payment settings to be refreshed at the next call // since we can't them at the same time as the standard settings because we could be not authenticated _cachedSettings = null; _client = null; _cache.Clear(PaymentSettingsCacheKey); }
protected override async void OnViewModelSet() { base.OnViewModelSet(); SetContentView(Resource.Layout.View_Payments_CreditCardAdd); _paymentSettings = await Mvx.Resolve <IPaymentService>().GetPaymentSettings(); ConfigureCreditCardSection(); ConfigurePayPalSection(); }
public override async void Start() { base.Start(); try { PaymentSettings = await _paymentService.GetPaymentSettings(); } catch (Exception ex) { Logger.LogError(ex); } BaseStart(); }
private async Task RefreshPaymentSettings() { try { _cachedSettings = await Mvx.Resolve <ConfigurationClientService>().GetPaymentSettings().ConfigureAwait(false); _cache.Set(PaymentSettingsCacheKey, _cachedSettings); _client = GetClient(_cachedSettings); } catch (Exception) { throw; } }
public async Task <ClientPaymentSettings> GetPaymentSettings() { var paymentSettings = new ClientPaymentSettings(); try { var result = await Client.GetAsync <Dictionary <string, string> >("/encryptedsettings/payments", logger : Logger); _cryptographyService.SwitchEncryptionStringsDictionary(paymentSettings.GetType(), null, result, false); SettingsLoader.InitializeDataObjects(paymentSettings, result, Logger); } catch (Exception ex) { Logger.LogError(ex, string.Empty, -1, true); } return(paymentSettings); }
public async Task <ClientPaymentSettings> GetPaymentSettings(bool cleanCache = false) { _cachedSettings = _cache.Get <ClientPaymentSettings>(PaymentSettingsCacheKey); if (_cachedSettings == null || cleanCache) { await RefreshPaymentSettings(); _client = GetClient(_cachedSettings); return(_cachedSettings); } // set client with cached settings for now _client = GetClient(_cachedSettings); // Update cache... Task.Run(() => RefreshPaymentSettings()).FireAndForget(); // ... and return current settings return(_cachedSettings); }
private IPaymentServiceClient GetClient(ClientPaymentSettings settings) { switch (settings.PaymentMode) { case PaymentMethod.Braintree: return(new BraintreeServiceClient(_baseUrl, _sessionId, settings.BraintreeClientSettings.ClientKey, _packageInfo, _connectivityService, _logger)); case PaymentMethod.RideLinqCmt: case PaymentMethod.Cmt: return(new CmtPaymentClient(_baseUrl, _sessionId, settings.CmtPaymentSettings, _ipAddressManager, _packageInfo, _logger, _connectivityService)); case PaymentMethod.Moneris: return(new MonerisServiceClient(_baseUrl, _sessionId, settings.MonerisPaymentSettings, _packageInfo, _connectivityService, _logger)); case PaymentMethod.Fake: return(new FakePaymentClient()); default: return(null); } }
public async void Init() { using (this.Services().Message.ShowProgress()) { try { _bookingSettings = _accountService.CurrentAccount.Settings; _email = _accountService.CurrentAccount.Email; _paymentSettings = await _paymentService.GetPaymentSettings(); PhoneNumber.Country = _bookingSettings.Country; PhoneNumber.PhoneNumber = _bookingSettings.Phone; RaisePropertyChanged(() => ChargeTypeId); RaisePropertyChanged(() => ChargeTypeName); RaisePropertyChanged(() => IsChargeAccountPaymentEnabled); RaisePropertyChanged(() => IsPayBackFieldEnabled); RaisePropertyChanged(() => Email); RaisePropertyChanged(() => PhoneNumber); RaisePropertyChanged(() => SelectedCountryCode); // this should be called last since it calls the server, we don't want to slow down other controls var v = await _vehicleTypeService.GetAndObserveVehiclesList().Take(1).ToTask(); _vehicles = v == null ? new ListItem[0] : v.Select(x => new ListItem { Id = x.ReferenceDataVehicleId, Display = x.Name }).ToArray(); RaisePropertyChanged(() => Vehicles); RaisePropertyChanged(() => VehicleTypeId); RaisePropertyChanged(() => VehicleTypeName); } catch (Exception ex) { Logger.LogMessage(ex.Message, ex.ToString()); this.Services().Message.ShowMessage(this.Services().Localize["Error"], this.Services().Localize["RideSettingsLoadError"]); } } }
private async void FetchPaymentSettings() { _paymentSettings = await _paymentService.GetPaymentSettings(); RaisePropertyChanged(() => AddPaymentMethodButtonTitle); }