public override void SetModel(IPaymentModel model, IStringResourceProvider stringResourceProvider)
    {
        base.SetModel(model, stringResourceProvider);

        this.BillingAddressChoice.SetModel(model.AccountModel, this.StringResourceProvider);

        CodPaymentView.SetModel(null, this.StringResourceProvider);
        CreditCardPaymentForm.SetModel(null, this.StringResourceProvider);
        SecureNetPaymentView.SetModel(null, this.StringResourceProvider);
        TwoCheckoutPaymentView.SetModel(null, this.StringResourceProvider);
        CheckPaymentView.SetModel(null, this.StringResourceProvider);
        RequestQuoteView.SetModel(null, this.StringResourceProvider);
        PayPalPaymentView.SetModel(null, this.StringResourceProvider);
        PurchaseOrderPaymentView.SetModel(null, this.StringResourceProvider);
        PayPalExpressView.SetModel(null, this.StringResourceProvider);
        MicroPayPaymentView.SetModel(null, this.StringResourceProvider);
        CheckOutByAmazonPaymentView.SetModel(null, this.StringResourceProvider);
        PayPalEmbeddedCheckoutPaymentView.SetModel(null, this.StringResourceProvider);
        MoneybookersQuickCheckoutPaymentView.SetModel(null, this.StringResourceProvider);
        ECheckPaymentView.SetModel(null, this.StringResourceProvider);
        WorldPayPaymentView.SetModel(null, this.StringResourceProvider);

        foreach (var paymentModel in this.Model.PaymentMethods)
        {
            var paymentView = FindPaymentMethodView(paymentModel.Key);
            if (paymentView != null)
            {
                paymentView.SetModel(paymentModel.Value, this.StringResourceProvider);
                ((IPaymentMethodView)paymentView).PaymentFormSubmitted += OPCControls_PaymentFormAndBillingAddress_PaymentFormSubmitted;
            }

            if (paymentModel.Value.PaymentType == PaymentType.SecureNet)
            {
                SecureNetPaymentView.ExistingCreditCardSelected += (o, e) => CreditCardPaymentForm.Hide();
                SecureNetPaymentView.NewCreditCardSelected      += (o, e) =>
                {
                    CreditCardPaymentForm.Initialize();
                    CreditCardPaymentForm.Show();
                    CreditCardPaymentForm.BindView();
                };

                Model.ProcessingPayment += (o, e) =>
                {
                    if (!(e.PaymentMethod is CreditCardPaymentModel) && !(e.PaymentMethod is SecureNetPaymentModel))
                    {
                        return;
                    }

                    ((SecureNetPaymentModel)paymentModel.Value).SwitchPaymentMethod();
                };
            }
        }

        this.ActivatePaymentView();
    }
Exemple #2
0
    public void BindView()
    {
        bool hasPayPal = false;
        List <PaymentMethodBaseModel> payPalOptions = new List <PaymentMethodBaseModel>();

        PanelError.Visible = false;
        CreditCardPaymentViewForm.StringResourceProvider            = this.StringResourceProvider;
        SecureNetPaymentView.StringResourceProvider                 = this.StringResourceProvider;
        CheckPaymentView.StringResourceProvider                     = this.StringResourceProvider;
        RequestQuoteView.StringResourceProvider                     = this.StringResourceProvider;
        PayPalPaymentView.StringResourceProvider                    = this.StringResourceProvider;
        PurchaseOrderPaymentView.StringResourceProvider             = this.StringResourceProvider;
        PayPalExpressView.StringResourceProvider                    = this.StringResourceProvider;
        MicroPayPaymentView.StringResourceProvider                  = this.StringResourceProvider;
        CodPaymentView.StringResourceProvider                       = this.StringResourceProvider;
        CheckOutByAmazonPaymentView.StringResourceProvider          = this.StringResourceProvider;
        PayPalEmbeddedCheckoutPaymentView.StringResourceProvider    = this.StringResourceProvider;
        MoneybookersQuickCheckoutPaymentView.StringResourceProvider = this.StringResourceProvider;

        if (PaymentModel != null)
        {
            foreach (var kvp in this.PaymentModel.PaymentMethods)
            {
                PaymentMethodBaseModel method = kvp.Value;
                switch (method.PaymentType)
                {
                case PaymentType.CreditCard:
                {
                    PanelCreditCardMethod.Visible = true;
                    CreditCardPaymentViewForm.SetModel(method);
                    CreditCardPaymentViewForm.Initialize();
                    CreditCardPaymentViewForm.Hide();

                    IEnumerable <CreditCardType> cardTypes = ((CreditCardPaymentModel)method).AllowedCardTypes;

                    ImageCardTypeVisa.Visible       = cardTypes.Contains(CreditCardType.Visa);
                    ImageCardTypeMastercard.Visible = cardTypes.Contains(CreditCardType.MasterCard);
                    ImageCardTypeAmex.Visible       = cardTypes.Contains(CreditCardType.AmericanExpress);
                    ImageCardTypeDiscover.Visible   = cardTypes.Contains(CreditCardType.Discover);
                    ImageCardTypeSolo.Visible       = cardTypes.Contains(CreditCardType.Solo);
                    ImageCardTypeMaestro.Visible    = cardTypes.Contains(CreditCardType.Maestro);

                    RadioCreditCard.Visible = true;
                    RadioCreditCard.Enabled = true;
                    RadioCreditCard.Checked = false;
                }; break;

                case PaymentType.SecureNet:
                {
                    SecureNetPaymentView.SetModel(method);
                    SecureNetPaymentView.Initialize();
                    SecureNetPaymentView.Hide();
                } break;

                case PaymentType.CheckByMail:
                {
                    PanelCheckMoneyOrderMethod.Visible = true;
                    CheckPaymentView.SetModel(method);
                    CheckPaymentView.Initialize();
                    CheckPaymentView.Hide();

                    RadioCheckByMail.Visible = true;
                    RadioCheckByMail.Enabled = true;
                    RadioCheckByMail.Checked = false;
                }; break;

                case PaymentType.RequestAQuote:
                {
                    PanelRequestQuote.Visible = true;

                    RequestQuoteView.SetModel(method);
                    RequestQuoteView.Initialize();
                    RequestQuoteView.Hide();

                    RadioRequestQuote.Visible = true;
                    RadioRequestQuote.Enabled = true;
                    RadioRequestQuote.Checked = false;
                }; break;

                case PaymentType.PurchaseOrder:
                {
                    PanelPurchaseOrderMethod.Visible = true;
                    PurchaseOrderPaymentView.SetModel(method);
                    PurchaseOrderPaymentView.Initialize();
                    PurchaseOrderPaymentView.Hide();

                    RadioPurchaseOrder.Visible = true;
                    RadioPurchaseOrder.Enabled = true;
                    RadioPurchaseOrder.Checked = false;
                }; break;

                case PaymentType.PayPalEmbeddedCheckout:
                case PaymentType.PayPalExpress:
                case PaymentType.PayPal:
                    hasPayPal = true;
                    payPalOptions.Add(method);
                    break;

                case PaymentType.MicroPay:
                {
                    PanelMicroPayMethod.Visible = true;

                    MicroPayPaymentView.SetModel(method);
                    MicroPayPaymentView.Initialize();
                    MicroPayPaymentView.Hide();

                    RadioMicroPay.Visible = true;
                    RadioMicroPay.Enabled = true;
                    RadioMicroPay.Checked = false;
                }; break;

                case PaymentType.COD:
                {
                    PanelCodMethod.Visible = true;

                    CodPaymentView.SetModel(method);
                    CodPaymentView.Initialize();
                    CodPaymentView.Hide();

                    RadioCod.Visible = true;
                    RadioCod.Enabled = true;
                    RadioCod.Checked = false;
                }; break;

                case PaymentType.CheckoutByAmazon:
                {
                    CheckOutByAmazonPaymentView.SetModel(method);
                    CheckOutByAmazonPaymentView.Initialize();
                    CheckOutByAmazonPaymentView.Hide();

                    if (((CheckOutByAmazonPaymentModel)CheckOutByAmazonPaymentView.PaymentMethodModel).IsCheckingOut)
                    {
                        PanelCheckoutByAmazon.Visible = true;
                        RadioCheckoutByAmazon.Visible = true;
                        RadioCheckoutByAmazon.Enabled = true;
                        RadioCheckoutByAmazon.Checked = false;
                    }
                }; break;

                case PaymentType.MoneybookersQuickCheckout:
                {
                    MoneybookersQuickCheckoutPaymentView.SetModel(method);
                    MoneybookersQuickCheckoutPaymentView.Initialize();
                    MoneybookersQuickCheckoutPaymentView.Hide();

                    PanelMoneybookersQuickCheckout.Visible = true;
                    RadioMoneybookersQuickCheckout.Visible = true;
                    RadioMoneybookersQuickCheckout.Enabled = true;
                    RadioMoneybookersQuickCheckout.Checked = false;
                } break;
                }
            }
            //PayPal options are mutually exclusive so this will ensure only one shows
            if (hasPayPal)
            {
                HandlePayPalOptions(payPalOptions);
            }
        }

        SetSelectedPaymentMethod();
    }
Exemple #3
0
    public void SetModel(IPaymentModel model)
    {
        this.PaymentModel = (IPaymentModel)model;
        foreach (var kvp in this.PaymentModel.PaymentMethods)
        {
            PaymentMethodBaseModel method = kvp.Value;
            switch (method.PaymentType)
            {
            case PaymentType.CreditCard:
            {
                CreditCardPaymentViewForm.StringResourceProvider = this.StringResourceProvider;
                CreditCardPaymentViewForm.SetModel(method);
            }; break;

            case PaymentType.SecureNet:
            {
                SecureNetPaymentView.StringResourceProvider = this.StringResourceProvider;
                SecureNetPaymentView.SetModel(method);

                SecureNetPaymentView.ExistingCreditCardSelected += (o, e) => CreditCardPaymentViewForm.Hide();
                SecureNetPaymentView.NewCreditCardSelected      += (o, e) => CreditCardPaymentViewForm.Show();

                PaymentModel.ProcessingPayment += (o, e) =>
                {
                    if (!(e.PaymentMethod is CreditCardPaymentModel) && !(e.PaymentMethod is SecureNetPaymentModel))
                    {
                        return;
                    }

                    ((SecureNetPaymentModel)method).SwitchPaymentMethod();
                };
            } break;

            case PaymentType.CheckByMail:
            {
                CheckPaymentView.StringResourceProvider = this.StringResourceProvider;
                CheckPaymentView.SetModel(method);
            }; break;

            case PaymentType.RequestAQuote:
            {
                RequestQuoteView.StringResourceProvider = this.StringResourceProvider;
                RequestQuoteView.SetModel(method);
            }; break;

            case PaymentType.PurchaseOrder:
            {
                PurchaseOrderPaymentView.StringResourceProvider = this.StringResourceProvider;
                PurchaseOrderPaymentView.SetModel(method);
            }; break;

            case PaymentType.PayPal:
            {
                PayPalPaymentView.StringResourceProvider = this.StringResourceProvider;
                PayPalPaymentView.SetModel(method);
            }; break;

            case PaymentType.PayPalExpress:
            {
                PayPalExpressView.StringResourceProvider = this.StringResourceProvider;
                PayPalExpressView.SetModel(method);
            } break;

            case PaymentType.MicroPay:
            {
                MicroPayPaymentView.StringResourceProvider = this.StringResourceProvider;
                MicroPayPaymentView.SetModel(method);
            } break;

            case PaymentType.COD:
            {
                CodPaymentView.StringResourceProvider = this.StringResourceProvider;
                CodPaymentView.SetModel(method);
            } break;

            case PaymentType.CheckoutByAmazon:
            {
                CheckOutByAmazonPaymentView.StringResourceProvider = this.StringResourceProvider;
                CheckOutByAmazonPaymentView.SetModel(method);
            } break;

            case PaymentType.PayPalEmbeddedCheckout:
            {
                PayPalEmbeddedCheckoutPaymentView.StringResourceProvider = this.StringResourceProvider;
                PayPalEmbeddedCheckoutPaymentView.SetModel(method);
            } break;

            case PaymentType.MoneybookersQuickCheckout:
            {
                MoneybookersQuickCheckoutPaymentView.StringResourceProvider = this.StringResourceProvider;
                MoneybookersQuickCheckoutPaymentView.SetModel(method);
            } break;
            }
        }
    }