Esempio n. 1
0
        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;
            }
        }