Пример #1
0
        protected void repGateways_DataBinding(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                RadioButton rb = e.Item.FindControl("rbGateway") as RadioButton;
                LinkButton  btnConfigureGateway = e.Item.FindControl("btnConfigureGateway") as LinkButton;
                Image       imgPayPal           = e.Item.FindControl("imgPayPal") as Image;

                GatewayData item = e.Item.DataItem as GatewayData;

                Control trGateway = e.Item.FindControl("trGateway");
                if (trGateway != null)
                {
                    trGateway.Visible = IsPaymentOptionAvailable(item.DisplayName, ddlCountries.SelectedValue);
                }

                if (item.DisplayName.Contains("PayPal"))
                {
                    imgPayPal.Visible = true;
                }

                if (item.DisplayName.ToUpper().Contains("PAYFLOW"))
                {
                    imgPayPal.ImageUrl = "images/PayPal_OnBoarding_PayFlow.png";
                }

                if (AppLogic.AppConfig("PaymentGateway", 0, false).EqualsIgnoreCase("PayFlowPro"))
                {
                    var payFlowProProduct = AppLogic.GetAppConfig(0, "PayFlowPro.Product");
                    rb.Checked = item.DisplayName == payFlowProProduct.ConfigValue;
                }
                else
                {
                    rb.Checked = AppLogic.AppConfig("PaymentGateway", 0, false).EqualsIgnoreCase(item.GatewayIdentifier);
                }

                if (item.IsInstalled)
                {
                    GatewayProcessor gp = GatewayLoader.GetProcessor(item.GatewayIdentifier);
                    if (gp != null)
                    {
                        IConfigurationAtom atom = gp.GetConfigurationAtom();
                        rb.Enabled = atom == null || atom.IsConfigured(0) || atom.IsConfigured(AppLogic.StoreID());
                    }
                }
                else
                {
                    rb.Enabled = false;
                    btnConfigureGateway.Visible = false;
                }
                if (item.GatewayIdentifier != null && item.GatewayIdentifier.EqualsIgnoreCase("manual"))
                {
                    btnConfigureGateway.Visible = false;
                }
            }
        }
Пример #2
0
        private GatewayData CreateGatewayData(String displayName, String gatewayIdentifier, String administratorSetupPrompt)
        {
            GatewayData gatewayData = new GatewayData();

            gatewayData.DisplayName = displayName;
            gatewayData.AdministratorSetupPrompt = administratorSetupPrompt;
            gatewayData.IsInstalled       = true;
            gatewayData.GatewayIdentifier = gatewayIdentifier;
            return(gatewayData);
        }
Пример #3
0
        public void BuildGatewayList()
        {
            String GW = AppLogic.ActivePaymentGatewayCleaned();

            List <GatewayData> ds           = new List <GatewayData>();
            String             downloadLink = "<br /><a href=\"{1}\" onclick=\"showGatewayDirections('{2}');\">{0}</a>";

            if (repGateways.DataSource == null)
            {
                Dictionary <String, List <AssetServerAsset> > serverAssets = AssetServer.AssetServerAsset.GetAssetServerAssets();
                IEnumerable <string> availibleGateways = GatewayLoader.GetAvailableGatewayNames();

                foreach (String s in availibleGateways)
                {
                    GatewayProcessor GWActual = GatewayLoader.GetProcessor(s);
                    GatewayData      gd       = new GatewayData();
                    gd.DisplayName = GWActual.DisplayName(ThisCustomer.LocaleSetting);
                    gd.AdministratorSetupPrompt = GWActual.AdministratorSetupPrompt;
                    if (serverAssets.ContainsKey(GWActual.TypeName))
                    {
                        if (serverAssets[GWActual.TypeName].Count == 0)
                        {
                            return;
                        }

                        AssetServer.AssetVersion dllVersion       = new AssetVersion(GWActual.Version);
                        AssetServer.AssetVersion availibleVersion = new AssetVersion(serverAssets[GWActual.TypeName][0].Version);

                        if (availibleVersion.CompareTo(dllVersion) > 0)
                        {
                            gd.AdministratorSetupPrompt += "<b>Download Update</b>";
                            foreach (AssetServerAsset asa in serverAssets[GWActual.TypeName])
                            {
                                gd.AdministratorSetupPrompt += String.Format(downloadLink, asa.Title + " (" + asa.Version + ")", asa.Link, CommonLogic.IIF(String.IsNullOrEmpty(asa.DownloadInstructions), String.Empty, HttpContext.Current.Server.HtmlEncode(asa.DownloadInstructions)));
                            }
                        }

                        serverAssets.Remove(GWActual.TypeName);
                    }
                    gd.IsInstalled       = true;
                    gd.GatewayIdentifier = s;
                    ds.Add(gd);
                }
                //
                foreach (KeyValuePair <String, List <AssetServerAsset> > sa in serverAssets)
                {
                    if (sa.Value.Count == 0)
                    {
                        break;
                    }
                    GatewayData gd = new GatewayData();
                    gd.DisplayName = sa.Value[0].Title;
                    gd.IsInstalled = false;
                    StringBuilder setupPrompt = new StringBuilder();
                    setupPrompt.Append("<b>Download</b>");
                    foreach (AssetServerAsset asa in sa.Value)
                    {
                        setupPrompt.AppendFormat(downloadLink, asa.Title, asa.Link, CommonLogic.IIF(String.IsNullOrEmpty(asa.DownloadInstructions), String.Empty, HttpContext.Current.Server.HtmlEncode(asa.DownloadInstructions)));
                    }
                    gd.AdministratorSetupPrompt = setupPrompt.ToString();
                    ds.Add(gd);
                }

                ds.Add(CreateGatewayData("PayPal Payflow Link", "PayFlowPro", "(also enables PayPal Express Checkout) - See <a href=\"http://www.aspdotnetstorefront.com/linkmanager.aspx?topic=paypalpayflowlink&type=manual\" target=\"_blank\">Manual</a>."));
                ds.Add(CreateGatewayData("PayPal Payments Advanced", "PayFlowPro", "(also enables PayPal Express Checkout) - See <a href=\"http://www.aspdotnetstorefront.com/linkmanager.aspx?topic=paypalpaymentsadvanced&type=manual\" target=\"_blank\">Manual</a>."));

                ds = ds.Where(gd => IsPaymentOptionAvailable(gd.DisplayName, ddlCountries.SelectedValue)).ToList();

                ds = SortGatewayList(ds);

                repGateways.DataSource = ds;
                repGateways.DataBind();
            }
        }