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; } }
protected override void OnInit(EventArgs e) { base.OnInit(e); // get setting via control params if (DisplayHeader != null && DisplayHeader == "") DisplayHeader = "minicartheader.html"; if (DisplayBody != null && DisplayHeader == "") DisplayBody = "minicartbody.html"; if (DisplayFooter != null && DisplayHeader == "") DisplayFooter = "minicartfooter.html"; if (!String.IsNullOrEmpty(DisplayHeader) && !ModSettings.Settings().ContainsKey("txtdisplayheader")) ModSettings.Settings().Add("txtdisplayheader", DisplayHeader); if (!String.IsNullOrEmpty(DisplayBody) && !ModSettings.Settings().ContainsKey("txtdisplaybody")) ModSettings.Settings().Add("txtdisplaybody", DisplayBody); if (!String.IsNullOrEmpty(DisplayFooter) && !ModSettings.Settings().ContainsKey("txtdisplayfooter")) ModSettings.Settings().Add("txtdisplayfooter", DisplayFooter); if (!String.IsNullOrEmpty(PaymentTab) && !ModSettings.Settings().ContainsKey("PaymentTab")) ModSettings.Settings().Add("PaymentTab",PaymentTab ); if (!String.IsNullOrEmpty(Themefolder) && !ModSettings.Settings().ContainsKey("themefolder")) ModSettings.Settings().Add("themefolder", Themefolder); _cartInfo = new CartData(PortalId); _addressData = new AddressData(_cartInfo.UserId.ToString("")); if (ModSettings.Get("themefolder") == "") // if we don't have module setting jump out { rpDataH.ItemTemplate = new GenXmlTemplate("NO MODULE SETTINGS"); return; } try { _templH = ModSettings.Get("txtdisplayheader"); _templD = ModSettings.Get("txtdisplaybody"); _templDfoot = ModSettings.Get("txtdisplaybodyfoot"); _templF = ModSettings.Get("txtdisplayfooter"); const string templAB = "cartbillingaddress.html"; const string templAS = "cartshippingaddress.html"; const string templS = "cartshipment.html"; const string templE = "cartextra.html"; const string templD = "cartdetails.html"; carttype = ModSettings.Get("ddlcarttype"); // This is left for backward compatiblity with NBS_Cart module (now removed from install). if (carttype == "") { // cart type is not a setting, so use the controlanme if (ModuleConfiguration.DesktopModule.ModuleName == "NBS_MiniCart") carttype = "1"; if (ModuleConfiguration.DesktopModule.ModuleName == "NBS_FullCart") carttype = "3"; if (ModuleConfiguration.DesktopModule.ModuleName == "NBS_Checkout") carttype = "2"; } if (carttype == "3" || carttype == "2") // check if we need to add cookie items { _cartInfo.AddCookieToCart(); _cartInfo.Save(); } if (!_cartInfo.GetCartItemList().Any() && (carttype == "3" || carttype == "2")) _templH = "cartempty.html"; // check for empty cart else { // Get Display Body var rpDataTempl = ModCtrl.GetTemplateData(ModSettings, _templD, Utils.GetCurrentCulture(), DebugMode); rpData.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(rpDataTempl, ModSettings.Settings(), PortalSettings.HomeDirectory); // Get Display Footer var rpDataFTempl = ModCtrl.GetTemplateData(ModSettings, _templF, Utils.GetCurrentCulture(), DebugMode); rpDataF.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(rpDataFTempl, ModSettings.Settings(), PortalSettings.HomeDirectory); // Get CartLayout var layouttemplate = "checkoutlayout.html"; if (carttype == "3") layouttemplate = "fullcartlayout.html"; var checkoutlayoutTempl = ModCtrl.GetTemplateData(ModSettings, layouttemplate, Utils.GetCurrentCulture(), DebugMode); checkoutlayout.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(checkoutlayoutTempl, ModSettings.Settings(), PortalSettings.HomeDirectory); _templateHeader = (GenXmlTemplate)checkoutlayout.ItemTemplate; } // Get Display Header var rpDataHTempl = ModCtrl.GetTemplateData(ModSettings, _templH, Utils.GetCurrentCulture(), DebugMode); rpDataH.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(rpDataHTempl, ModSettings.Settings(), PortalSettings.HomeDirectory); // insert page header text NBrightBuyUtils.IncludePageHeaders(ModCtrl, ModuleId, Page, _templateHeader, ModSettings.Settings(), null, DebugMode); if (carttype == "2") { // add any shiiping provider templates to the cart layout, so we can process any data required by them rpShip.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(ModCtrl.GetTemplateData(ModSettings, templS, Utils.GetCurrentCulture(), DebugMode), ModSettings.Settings(), PortalSettings.HomeDirectory); rpAddrB.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(ModCtrl.GetTemplateData(ModSettings, templAB, Utils.GetCurrentCulture(), DebugMode), ModSettings.Settings(), PortalSettings.HomeDirectory); rpAddrS.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(ModCtrl.GetTemplateData(ModSettings, templAS, Utils.GetCurrentCulture(), DebugMode), ModSettings.Settings(), PortalSettings.HomeDirectory); var checkoutextraTempl = ModCtrl.GetTemplateData(ModSettings, templE, Utils.GetCurrentCulture(), DebugMode); checkoutextraTempl += GetShippingProviderTemplates(); rpExtra.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(checkoutextraTempl, ModSettings.Settings(), PortalSettings.HomeDirectory); } } catch (Exception exc) { rpDataF.ItemTemplate = new GenXmlTemplate(exc.Message, ModSettings.Settings()); // catch any error and allow processing to continue, output error as footer template. } }