예제 #1
0
        public void InitializeService(PayPalClientSettings payPalSettings)
        {
            _clientId = payPalSettings.IsSandbox
                ? payPalSettings.SandboxCredentials.ClientId
                : payPalSettings.Credentials.ClientId;

            _environment = payPalSettings.IsSandbox
                ? PayPalConfiguration.EnvironmentSandbox
                : PayPalConfiguration.EnvironmentProduction;
        }
        public void InitializeService(PayPalClientSettings payPalSettings)
        {
            PayPalMobile.WithClientIds(
                (NSString)payPalSettings.Credentials.ClientId,
                (NSString)payPalSettings.SandboxCredentials.ClientId);

            PayPalMobile.PreconnectWithEnvironment(payPalSettings.IsSandbox
                ? PayPalMobile.PayPalEnvironmentSandbox
                : PayPalMobile.PayPalEnvironmentProduction);
        }
예제 #3
0
        public override async void ViewDidLoad()
        {
            base.ViewDidLoad();

            View.BackgroundColor = UIColor.FromRGB(242, 242, 242);

            var paymentSettings = await Mvx.Resolve <IPaymentService>().GetPaymentSettings();

            _payPalSettings = paymentSettings.PayPalClientSettings;

            lblInstructions.Text = Localize.GetValue("CreditCardInstructions");

            if (!ViewModel.CanChooseTip)
            {
                viewTip.RemoveFromSuperview();
            }
            else
            {
                ConfigureTipSection();
            }

            if (!ViewModel.CanChooseLabel)
            {
                viewLabel.RemoveFromSuperview();
            }
            else
            {
                ConfigureLabelSection();
            }

            if (!ViewModel.ShowInstructions)
            {
                lblInstructions.RemoveFromSuperview();
            }

            if (!ViewModel.IsPayPalOnly)
            {
                ConfigureCreditCardSection();
            }
            else
            {
                viewCreditCard.RemoveFromSuperview();
            }

            if (PayPalIsEnabled)
            {
                ConfigurePayPalSection();
            }
            else
            {
                viewPayPal.RemoveFromSuperview();
            }

            if (ViewModel.PaymentSettings.EnableAddressVerification)
            {
                lblStreetName.Text   = Localize.GetValue("CreditCardAdd_StreetNameLabel");
                lblStreetNumber.Text = Localize.GetValue("CreditCardAdd_StreetNumberLabel");

                txtStreetName.Placeholder          = Localize.GetValue("CreditCardAdd_StreetNameLabel");
                txtStreetName.AccessibilityLabel   = txtStreetName.Placeholder;
                txtStreetNumber.Placeholder        = Localize.GetValue("CreditCardAdd_StreetNumberLabel");
                txtStreetNumber.AccessibilityLabel = txtStreetNumber.Placeholder;
                lblEmail.Text       = Localize.GetValue("EmailLabel");
                lblPhoneNumber.Text = Localize.GetValue("PassengerPhoneLabel");

                txtEmail.Placeholder              = Localize.GetValue("RideSettingsEmailTitle");
                txtEmail.AccessibilityLabel       = txtEmail.Placeholder;
                txtPhoneNumber.Placeholder        = Localize.GetValue("RideSettingsPhone");
                txtPhoneNumber.AccessibilityLabel = txtPhoneNumber.Placeholder;

                lblCountryCode.Configure(NavigationController, ViewModel.SelectedCountryCode, countryCode => ViewModel.SelectedCountryCode = countryCode);
                lblCountryCode.Font                      = UIFont.FromName(FontName.HelveticaNeueLight, 38 / 2);
                lblCountryCode.TintColor                 = UIColor.Black;
                lblCountryCode.TextColor                 = UIColor.FromRGB(44, 44, 44);
                lblCountryCode.TextAlignment             = UITextAlignment.Center;
                lblCountryCode.AdjustsFontSizeToFitWidth = true;
                lblCountryCode.BackgroundColor           = UIColor.White;
            }
            else
            {
                lblStreetName.RemoveFromSuperview();
                lblStreetNumber.RemoveFromSuperview();
                lblEmail.RemoveFromSuperview();
                lblPhoneNumber.RemoveFromSuperview();
            }

            var set = this.CreateBindingSet <CreditCardAddView, CreditCardAddViewModel>();

            set.Bind(btnSaveCard)
            .For("Title")
            .To(vm => vm.CreditCardSaveButtonDisplay);

            set.Bind(txtCvv)
            .For("HiddenEx")
            .To(vm => vm.IsAddingNewCard)
            .WithConversion("BoolInverter");

            set.Bind(lblCvv)
            .For("HiddenEx")
            .To(vm => vm.IsAddingNewCard)
            .WithConversion("BoolInverter");

            set.Bind(btnSaveCard)
            .For("TouchUpInside")
            .To(vm => vm.SaveCreditCardCommand);

            set.Bind(btnDeleteCard)
            .For("TouchUpInside")
            .To(vm => vm.DeleteCreditCardCommand);

            set.Bind(btnDeleteCard)
            .For("HiddenEx")
            .To(vm => vm.CanDeleteCreditCard)
            .WithConversion("BoolInverter");

            set.Bind(btnCardDefault)
            .For("TouchUpInside")
            .To(vm => vm.SetAsDefault);

            set.Bind(btnCardDefault)
            .For("HiddenEx")
            .To(vm => vm.CanSetCreditCardAsDefault)
            .WithConversion("BoolInverter");

            set.Bind(btnScanCard)
            .For("HiddenEx")
            .To(vm => vm.CanScanCreditCard)
            .WithConversion("BoolInverter");

            set.Bind(txtNameOnCard)
            .For(v => v.Text)
            .To(vm => vm.Data.NameOnCard);

            set.Bind(txtNameOnCard)
            .For(v => v.Enabled)
            .To(vm => vm.IsAddingNewCard);

            set.Bind(txtZipCode)
            .For(v => v.Text)
            .To(vm => vm.Data.ZipCode);

            set.Bind(txtZipCode)
            .For(v => v.Enabled)
            .To(vm => vm.IsAddingNewCard);

            set.Bind(txtCardNumber)
            .For(v => v.Text)
            .To(vm => vm.CreditCardNumber);

            set.Bind(txtCardNumber)
            .For(v => v.ImageLeftSource)
            .To(vm => vm.CreditCardImagePath);

            set.Bind(txtCardNumber)
            .For(v => v.Enabled)
            .To(vm => vm.IsAddingNewCard);

            set.Bind(txtExpMonth)
            .For(v => v.Text)
            .To(vm => vm.ExpirationMonthDisplay);

            set.Bind(txtExpMonth)
            .For(v => v.Enabled)
            .To(vm => vm.IsAddingNewCard);

            set.Bind(txtExpMonth)
            .For(v => v.HasRightArrow)
            .To(vm => vm.IsAddingNewCard);

            set.Bind(txtExpYear)
            .For(v => v.Text)
            .To(vm => vm.ExpirationYearDisplay);

            set.Bind(txtExpYear)
            .For(v => v.Enabled)
            .To(vm => vm.IsAddingNewCard);

            set.Bind(txtExpYear)
            .For(v => v.HasRightArrow)
            .To(vm => vm.IsAddingNewCard);

            set.Bind(txtCvv)
            .For(v => v.Text)
            .To(vm => vm.Data.CCV);

            set.Bind(txtCvv)
            .For(v => v.Enabled)
            .To(vm => vm.IsAddingNewCard);

            set.Bind(txtEmail)
            .For(v => v.Enabled)
            .To(vm => vm.IsAddingNewCard);

            set.Bind(txtPhoneNumber)
            .For(v => v.Enabled)
            .To(vm => vm.IsAddingNewCard);

            set.Bind(lblCountryCode)
            .For(v => v.Enabled)
            .To(vm => vm.IsAddingNewCard);

            set.Bind(txtStreetName)
            .For(v => v.Enabled)
            .To(vm => vm.IsAddingNewCard);

            set.Bind(txtStreetNumber)
            .For(v => v.Enabled)
            .To(vm => vm.IsAddingNewCard);

            set.Bind(btnLinkPayPal)
            .For(v => v.Hidden)
            .To(vm => vm.CanLinkPayPalAccount)
            .WithConversion("BoolInverter");

            set.Bind(btnUnlinkPayPal)
            .For(v => v.Hidden)
            .To(vm => vm.CanUnlinkPayPalAccount)
            .WithConversion("BoolInverter");

            set.Bind(viewPayPalIsLinkedInfo)
            .For(v => v.Hidden)
            .To(vm => vm.ShowLinkedPayPalInfo)
            .WithConversion("BoolInverter");

            set.Bind(txtTip)
            .For(v => v.Text)
            .To(vm => vm.PaymentPreferences.TipAmount);

            set.Bind(imgVisa)
            .For(v => v.HiddenWithConstraints)
            .To(vm => vm.PaymentSettings.DisableVisaMastercard);

            set.Bind(imgAmex)
            .For(v => v.HiddenWithConstraints)
            .To(vm => vm.PaymentSettings.DisableAMEX);

            set.Bind(lblCountryCode)
            .For(v => v.SelectedCountryCode)
            .To(vm => vm.SelectedCountryCode);

            set.Bind(txtLabel)
            .For(v => v.Text)
            .To(vm => vm.Data.Label);

            set.Bind(imgDiscover)
            .For(v => v.HiddenWithConstraints)
            .To(vm => vm.PaymentSettings.DisableDiscover);

            set.Bind(txtStreetName)
            .For("HiddenEx")
            .To(vm => vm.PaymentSettings.EnableAddressVerification)
            .WithConversion("BoolInverter");

            set.Bind(txtStreetNumber)
            .For("HiddenEx")
            .To(vm => vm.PaymentSettings.EnableAddressVerification)
            .WithConversion("BoolInverter");

            set.Bind(txtStreetName)
            .To(vm => vm.Data.StreetName);

            set.Bind(txtStreetNumber)
            .To(vm => vm.Data.StreetNumber);

            set.Bind(txtEmail)
            .For("HiddenEx")
            .To(vm => vm.PaymentSettings.EnableAddressVerification)
            .WithConversion("BoolInverter");

            set.Bind(txtPhoneNumber)
            .For("HiddenEx")
            .To(vm => vm.PaymentSettings.EnableAddressVerification)
            .WithConversion("BoolInverter");

            set.Bind(txtEmail)
            .To(vm => vm.Data.Email);

            set.Bind(txtPhoneNumber)
            .To(vm => vm.Data.Phone);

            set.Apply();

            txtNameOnCard.ShouldReturn += GoToNext;
        }