private string GetExternalDownloads(List <AssetServerAsset> ListOfAssets, string AboveVersion, Boolean IsUpdate) { StringBuilder ret = new StringBuilder(); if (IsUpdate) { ret.Append("<b>Update:</b> "); } else { ret.Append("<b>Download:</b> "); } string Seperator = " | "; foreach (AssetServerAsset asset in ListOfAssets) { AssetVersion thisVersion = new AssetVersion(asset.Version); AssetVersion comparedVersion = new AssetVersion(AboveVersion); if (thisVersion.CompareTo(comparedVersion) > 0) { ret.AppendFormat("<a href=\"{0}\" target=\"_blank\">{1} {2}</a>{3}", asset.Link, asset.Title, asset.Version, Seperator); } } String retS = ret.ToString(); if (retS.Length > Seperator.Length && retS.EndsWith(Seperator)) { retS = retS.Substring(0, retS.Length - Seperator.Length); } return(retS); }
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(); } }