protected void CtrlItemCommand(object source, RepeaterCommandEventArgs e) { var cArg = e.CommandArgument.ToString(); var rtnTabId = TabId; var param = new string[4]; if (_guidkey != "") param[0] = "ref=" + _guidkey; //using ref is url else if (_eid != "") param[0] = "eid=" + _eid; // using id in url if (_modkey != "") param[1] = "modkey=" + _modkey; if (_catname != "") param[2] = "catref=" + _catname; //using ref is url else if (_catid != "") param[2] = "catid=" + _catid; //using id is url // redirect to cart after add to basket is arg is redirect if (cArg.ToLower() == "redirect" && Utils.IsNumeric(StoreSettings.Current.CartTabId)) rtnTabId = StoreSettings.Current.CartTabId; if (cArg.ToLower() == "redirectnoparam" && Utils.IsNumeric(StoreSettings.Current.CartTabId)) { rtnTabId = StoreSettings.Current.CartTabId; param[0] = ""; param[1] = ""; param[2] = ""; } switch (e.CommandName.ToLower()) { case "addtobasket": var currentcart = new CartData(PortalId); currentcart.AddItem(rpData, StoreSettings.Current.SettingsInfo, e.Item.ItemIndex, DebugMode); currentcart.Save(StoreSettings.Current.DebugMode); param[3] = "addcart=1"; Response.Redirect(Globals.NavigateURL(rtnTabId, "", param), true); break; case "addalltobasket": var currentcart2 = new CartData(PortalId); foreach (RepeaterItem ri in rpData.Items) { currentcart2.AddItem(rpData, StoreSettings.Current.SettingsInfo, ri.ItemIndex, DebugMode); } currentcart2.Save(StoreSettings.Current.DebugMode); param[3] = "addcart=1"; Response.Redirect(Globals.NavigateURL(rtnTabId, "", param), true); break; case "addcookietobasket": var currentcart3 = new CartData(PortalId); currentcart3.AddCookieToCart(); currentcart3.Save(StoreSettings.Current.DebugMode); param[3] = "addcart=1"; Response.Redirect(Globals.NavigateURL(rtnTabId, "", param), true); break; case "docdownload": var s = cArg.Split(':'); if (s.Length == 2) { var itemid = s[0]; var idx = s[1]; if (Utils.IsNumeric(idx) && Utils.IsNumeric(itemid)) { var index = Convert.ToInt32(idx); var prdData = ProductUtils.GetProductData(Convert.ToInt32(itemid), Utils.GetCurrentCulture()); if (prdData.Docs.Count >= index) { var docInfo = prdData.Docs[index -1]; var docFilePath = docInfo.GetXmlProperty("genxml/hidden/filepath"); var fileName = docInfo.GetXmlProperty("genxml/textbox/txtfilename"); ; var fileExt = docInfo.GetXmlProperty("genxml/hidden/fileext"); var purchase = docInfo.GetXmlProperty("genxml/checkbox/chkpurchase"); if (fileName == "") fileName = "filename"; if (!fileName.EndsWith(fileExt)) fileName += fileExt; if (purchase == "True") { //[TODO: check if the document has been purchased] Utils.ForceDocDownload(docFilePath, fileName, Response); } else { Utils.ForceDocDownload(docFilePath, fileName, Response); } } } } break; case "printproduct": param[0] = "eid=" + _eid; param[1] = "print=printproduct"; param[2] = "template=printproduct.html"; Response.Redirect(Globals.NavigateURL(TabId,"", param), true); break; default : //check for any command providers. var providerList = NBrightCore.providers.GenXProviderManager.ProviderList; if (providerList != null) { foreach (var prov in providerList) { prov.Value.CtrlItemCommand(source, e); } } Response.Redirect(Globals.NavigateURL(TabId, "", param), true); break; } }