Пример #1
0
 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);
 }
Пример #2
0
        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();
        }
Пример #4
0
        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);
        }
Пример #6
0
        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);
        }
Пример #7
0
        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);
            }
        }
Пример #8
0
        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);
        }