Ejemplo n.º 1
0
        protected override void OnInit(EventArgs e)
        {
            ModCtrl   = new NBrightBuyController();
            DebugMode = StoreSettings.Current.DebugMode;

            base.OnInit(e);

            #region "Get all Settings for module"
            //get Model Level Settings
            ModSettings = new ModSettings(ModuleId, Settings);
            ModuleKey   = ModSettings.Get("modref");
            if (String.IsNullOrEmpty(ModuleKey))
            {
                ModuleKey = ModSettings.Get("modulekey");                                  // keep backward compatiblity with NBS_ProductView.
            }
            #endregion

            if (EnablePaging)
            {
                // SET NOINDEX if we are paging product list
                try
                {
                    var page = Utils.RequestQueryStringParam(Context, "page");
                    if (page != "")
                    {
                        var metarobots = (System.Web.UI.HtmlControls.HtmlMeta)BasePage.Header.FindControl("MetaRobots");
                        if (metarobots != null)
                        {
                            metarobots.Content = "NOINDEX";
                        }
                    }
                }
                catch (Exception)
                {
                    //ignore
                }

                CtrlPaging = new NBrightCore.controls.PagingCtrl();
                this.Controls.Add(CtrlPaging);
                CtrlPaging.PageChanged += new RepeaterCommandEventHandler(PagingClick);
            }

            //add template provider to NBright Templating
            NBrightCore.providers.GenXProviderManager.AddProvider("NBrightBuy,Nevoweb.DNN.NBrightBuy.render.GenXmlTemplateExt");

            // search for any other NBright Tenmplating providers that might have been added.
            var pluginData = new PluginData(PortalSettings.Current.PortalId);
            var l          = pluginData.GetTemplateExtProviders();
            foreach (var p in l)
            {
                var prov = p.Value;
                NBrightCore.providers.GenXProviderManager.AddProvider(prov.GetXmlProperty("genxml/textbox/assembly") + "," + prov.GetXmlProperty("genxml/textbox/namespaceclass"));
            }
        }
Ejemplo n.º 2
0
        protected override void OnInit(EventArgs e)
        {
            ModCtrl   = new NBrightBuyController();
            DebugMode = StoreSettings.Current.DebugMode;

            base.OnInit(e);

            #region "Get all Settings for module"
            //get Model Level Settings
            ModSettings = new ModSettings(ModuleId, Settings);
            ModuleKey   = ModSettings.Get("modref");
            if (String.IsNullOrEmpty(ModuleKey))
            {
                ModuleKey = ModSettings.Get("modulekey");                                  // keep backward compatiblity with ProductView.
            }
            #endregion

            if (EnablePaging)
            {
                // SET NOINDEX if we are paging product list
                try
                {
                    var page = Utils.RequestQueryStringParam(Context, "page");
                    if (page != "")
                    {
                        var metarobots = (System.Web.UI.HtmlControls.HtmlMeta)BasePage.Header.FindControl("MetaRobots");
                        if (metarobots != null)
                        {
                            metarobots.Content = "NOINDEX";
                        }
                    }
                }
                catch (Exception)
                {
                    //ignore
                }

                CtrlPaging = new NBrightCore.controls.PagingCtrl();
                this.Controls.Add(CtrlPaging);
                CtrlPaging.PageChanged += new RepeaterCommandEventHandler(PagingClick);
            }

            //add template provider to NBright Templating
            //TODO: Remove when BO is all razor.
            NBrightCore.providers.GenXProviderManager.AddProvider("NBrightBuy,Nevoweb.DNN.NBrightBuy.render.GenXmlTemplateExt");

            // Build the plugin list
            PluginUtils.CreateSystemPlugins();
        }
Ejemplo n.º 3
0
        override protected void OnInit(EventArgs e)
        {
            base.OnInit(e);

            _profileData = new ProfileData();

            if (ModSettings.Get("themefolder") == "")  // if we don't have module setting jump out
            {
                rpInp.ItemTemplate = new GenXmlTemplate("NO MODULE SETTINGS");
                return;
            }

            try
            {
                _templinp = ModSettings.Get("txtinputform");

                // Get Display
                var rpInpTempl = ModCtrl.GetTemplateData(ModSettings, _templinp, Utils.GetCurrentCulture(), DebugMode);
                rpInp.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(rpInpTempl, ModSettings.Settings(), PortalSettings.HomeDirectory);
            }
            catch (Exception exc)
            {
                rpInp.ItemTemplate = new GenXmlTemplate(exc.Message, ModSettings.Settings());
                // catch any error and allow processing to continue, output error as footer template.
            }
        }
Ejemplo n.º 4
0
        override protected void OnInit(EventArgs e)
        {
            base.OnInit(e);

            _controlPath = ControlPath;

            if (ModuleKey == "")  // if we don't have module setting jump out
            {
                var lit = new Literal();
                lit.Text = "NO MODULE SETTINGS";
                phData.Controls.Add(lit);
                return;
            }


            if (ModSettings != null)
            {
                // check if we're using a provider controlpath for the templates.
                var providercontrolpath = ModSettings.Get("providercontrolpath");
                if (providercontrolpath != "")
                {
                    _controlPath = "/DesktopModules/NBright/" + providercontrolpath + "/";
                }
            }
        }
Ejemplo n.º 5
0
        private void PageLoad()
        {
            if (UserId > 0 && _cartInfo.UserId == -1) // user may have just logged in.
            {
                _cartInfo.UserId = UserId;
                _cartInfo.Save();
            }

            var orderid = Utils.RequestQueryStringParam(Context, "orderid");

            if (_provList.Count == 0 && ModSettings.Get("orderingsystem") == "True")
            {
                #region "No Payment providers, so process as a ordering system"

                if (_cartInfo != null && _cartInfo.IsValidated())
                {
                    _cartInfo.SaveModelTransQty(); // move qty into trans
                    _cartInfo.ConvertToOrder(DebugMode);
                    _cartInfo.ApplyModelTransQty();

                    // Send emails
                    NBrightBuyUtils.SendOrderEmail("OrderCreatedClient", _cartInfo.PurchaseInfo.ItemID, "ordercreatedemailsubject");

                    // update status to completed
                    _orderData             = new OrderData(PortalId, _cartInfo.PurchaseInfo.ItemID);
                    _orderData.CreatedDate = DateTime.Now.ToString("O");
                    _orderData.SavePurchaseData();

                    var cartL = new List <NBrightInfo>();
                    cartL.Add(_cartInfo.GetInfo());

                    // display payment OK for order
                    rpDetailDisplay.DataSource = cartL;
                    rpDetailDisplay.DataBind();
                }

                #endregion
            }
            else
            {
                #region "Payment Details"

                if (Utils.IsNumeric(orderid))
                {
                    // orderid exists, so must be return from bank; Process it!!
                    _orderData = new OrderData(PortalId, Convert.ToInt32(orderid));
                    DoDetail(rpDetailDisplay, _orderData.PurchaseInfo);
                }
                else
                {
                    // display return page
                    DoDetail(rpDetailDisplay, _cartInfo.PurchaseInfo);
                    DoDetail(rpPaymentGateways, _cartInfo.PurchaseInfo);
                    DoDetail(rpDetailFooter, _cartInfo.PurchaseInfo);
                }


                #endregion
            }
        }
Ejemplo n.º 6
0
        private void RazorPageLoad()
        {
            var obj = new NBrightInfo(true);
            // no cache key, we don't want to cache this form.
            var searchcookie = new NavigationData(PortalId, ModSettings.Get("targetmodulekey"));
            var paramcatid   = Utils.RequestQueryStringParam(Context, "catid");

            if (!Utils.IsNumeric(paramcatid))
            {
                paramcatid = "0";
            }
            if (searchcookie.CategoryId == Convert.ToInt32(paramcatid)) // filter mode DOES NOT persist catid (stop confusion when user selects a category)
            {
                if (searchcookie.SearchFormData != "")
                {
                    obj.XMLData = searchcookie.SearchFormData;
                }
            }
            else
            {
                searchcookie.ResetSearch();
            }
            var strOut = NBrightBuyUtils.RazorTemplRender(RazorTemplate, -1, "", obj, ControlPath, ThemeFolder, Utils.GetCurrentCulture(), ModSettings.Settings());
            var lit    = new Literal();

            lit.Text = strOut;
            phData.Controls.Add(lit);
        }
Ejemplo n.º 7
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            // must assign a redirect tab, so postback cookie works.
            _redirecttabid = TabId;
            if (Utils.IsNumeric(RedirectTabId))
            {
                _redirecttabid = Convert.ToInt32(RedirectTabId); // use passed in value over module setting (This stops clashbetween skin object and module)
            }
            else
            if (Utils.IsNumeric(ModSettings.Get("redirecttabid")))
            {
                _redirecttabid = Convert.ToInt32(ModSettings.Get("redirecttabid"));
            }

            _targetModuleKey = "";
            _targetModuleKey = ModSettings.Get("targetmodulekey");

            if (Page.IsPostBack == false || _isSkinControl)
            {
                var obj = new NBrightInfo();

                var targ         = _targetModuleKey.Split(',');
                var searchcookie = new NavigationData(PortalId, targ[0]);
                if (searchcookie.XmlData != "")
                {
                    obj.XMLData = searchcookie.XmlData;
                }
                DoDetail(rpData, obj);
            }
        }
Ejemplo n.º 8
0
        protected void CtrlItemCommand(object source, RepeaterCommandEventArgs e)
        {
            var cArg  = e.CommandArgument.ToString();
            var param = new string[3];

            switch (e.CommandName.ToLower())
            {
            case "updateaddress":
                _addressData.AddAddress(rpAddr);
                param[0] = "addressid=" + Utils.RequestParam(Context, "addressid");
                Response.Redirect(Globals.NavigateURL(TabId, "", param), true);
                break;

            case "saveaddress":
                _addressData.AddAddress(rpAddr);
                var addrid = Utils.RequestParam(Context, "addressid");
                if (Utils.IsNumeric(addrid) && ModSettings.Get("emailmanager") == "True")
                {
                    var ad = _addressData.GetAddress(Convert.ToInt32(addrid));
                    if (ad != null)
                    {
                        var emailtemplate = ModSettings.Get("emailtemplate");
                        if (ModSettings.Get("emailmanageropt") == "2")
                        {
                            NBrightBuyUtils.SendEmailToManager(emailtemplate, ad, "profileupdated_emailsubject.Text");
                        }
                        else
                        {
                            if (ad.GetXmlPropertyBool("genxml/hidden/default"))
                            {
                                NBrightBuyUtils.SendEmailToManager(emailtemplate, ad, "profileupdated_emailsubject.Text");
                            }
                        }
                    }
                }
                NBrightBuyUtils.SetNotfiyMessage(ModuleId, NotifyRef, NotifyCode.ok);
                Response.Redirect(Globals.NavigateURL(TabId, "", param), true);
                break;

            case "deleteaddress":
                _addressData.RemoveAddress(e.Item.ItemIndex);
                Response.Redirect(Globals.NavigateURL(TabId, "", param), true);
                break;

            case "editaddress":
                param[0] = "addressid=" + e.Item.ItemIndex.ToString("");
                Response.Redirect(Globals.NavigateURL(TabId, "", param), true);
                break;

            case "newaddress":
                param[0] = "addressid=-1";
                Response.Redirect(Globals.NavigateURL(TabId, "", param), true);
                break;

            case "cancel":
                Response.Redirect(Globals.NavigateURL(TabId, "", param), true);
                break;
            }
        }
Ejemplo n.º 9
0
 protected override void OnLoad(EventArgs e)
 {
     base.OnLoad(e);
     // if we don't have module settings update so we pickup the default.
     if (ModSettings.Get("themefolder") == "")
     {
         UpdateSettings();
     }
 }
Ejemplo n.º 10
0
        override protected void OnInit(EventArgs e)
        {
            base.OnInit(e);

            _isSkinControl = false;
            // get setting via control params
            if (!String.IsNullOrEmpty(Searchtemplate))
            {
                // is skin control
                _isSkinControl = true;
                if (!String.IsNullOrEmpty(RedirectTabId))
                {
                    ModSettings.Set("redirecttabid", RedirectTabId);
                }
                else
                {
                    ModSettings.Set("redirecttabid", StoreSettings.Current.Get("productlisttab")); // choose the default search page
                }
                if (String.IsNullOrEmpty(TargetModulekey))
                {
                    TargetModulekey = StoreSettings.Current.Get("productsearchmod");                                        //choose the default search page
                }
                if (!String.IsNullOrEmpty(TargetModulekey))
                {
                    ModSettings.Set("targetmodulekey", TargetModulekey);
                }
                if (!String.IsNullOrEmpty(Themefolder))
                {
                    ModSettings.Set("themefolder", Themefolder);
                }
                if (!String.IsNullOrEmpty(Searchtemplate))
                {
                    ModSettings.Set("txtsearchtemplate", Searchtemplate);
                }
            }

            if (ModSettings.Get("txtsearchtemplate") == "")  // if we don't have module setting jump out
            {
                rpData.ItemTemplate = new GenXmlTemplate("NO MODULE SETTINGS");
                return;
            }

            // Get Display template
            var templDname = ModSettings.Get("txtsearchtemplate");
            var templD     = ModCtrl.GetTemplateData(ModSettings, templDname, Utils.GetCurrentCulture(), DebugMode);


            // Get Display Body
            rpData.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(templD, ModSettings.Settings(), PortalSettings.HomeDirectory);
            _templD             = (GenXmlTemplate)rpData.ItemTemplate;
        }
Ejemplo n.º 11
0
        protected override void OnInit(EventArgs e)
        {
            ModCtrl   = new NBrightBuyController();
            DebugMode = StoreSettings.Current.DebugMode;

            base.OnInit(e);

            #region "Get all Settings for module"
            //get Model Level Settings
            ModSettings = new ModSettings(ModuleId, Settings);
            ModuleKey   = ModSettings.Get("modref");
            if (String.IsNullOrEmpty(ModuleKey))
            {
                ModuleKey = ModSettings.Get("modulekey");                                  // keep backward compatiblity with NBS_ProductView.
            }
            #endregion

            if (EnablePaging)
            {
                CtrlPaging = new NBrightCore.controls.PagingCtrl();
                this.Controls.Add(CtrlPaging);
                CtrlPaging.PageChanged += new RepeaterCommandEventHandler(PagingClick);
            }

            //add template provider to NBright Templating
            NBrightCore.providers.GenXProviderManager.AddProvider("NBrightBuy,Nevoweb.DNN.NBrightBuy.render.GenXmlTemplateExt");

            // search for any other NBright Tenmplating providers that might have been added.
            var pluginData = new PluginData(PortalSettings.Current.PortalId);
            var l          = pluginData.GetTemplateExtProviders();
            foreach (var p in l)
            {
                var prov = p.Value;
                NBrightCore.providers.GenXProviderManager.AddProvider(prov.GetXmlProperty("genxml/textbox/assembly") + "," + prov.GetXmlProperty("genxml/textbox/namespaceclass"));
            }
        }
Ejemplo n.º 12
0
        override protected void OnInit(EventArgs e)
        {
            base.OnInit(e);

            _addressData = new AddressData();

            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");
                _templF   = ModSettings.Get("txtdisplayfooter");
                _templinp = ModSettings.Get("txtinputform");

                // Get Display Header
                var rpDataHTempl = ModCtrl.GetTemplateData(ModSettings, _templH, Utils.GetCurrentCulture(), DebugMode);

                _templateHeader      = NBrightBuyUtils.GetGenXmlTemplate(rpDataHTempl, ModSettings.Settings(), PortalSettings.HomeDirectory);
                rpDataH.ItemTemplate = _templateHeader;

                // insert page header text
                NBrightBuyUtils.IncludePageHeaders(ModCtrl, ModuleId, Page, _templateHeader, ModSettings.Settings(), null, DebugMode);

                // 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 Display Footer
                var rpInpTempl = ModCtrl.GetTemplateData(ModSettings, _templinp, Utils.GetCurrentCulture(), DebugMode);
                rpAddr.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(rpInpTempl, 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.
            }
        }
Ejemplo n.º 13
0
        override protected void OnInit(EventArgs e)
        {
            _entryid       = Utils.RequestQueryStringParam(Context, "eid");
            _uid           = Utils.RequestParam(Context, "uid");
            _print         = Utils.RequestParam(Context, "print");
            _printtemplate = Utils.RequestParam(Context, "template");
            _page          = Utils.RequestParam(Context, "page");
            EnablePaging   = true;

            base.OnInit(e);

            // if we want to print a order we need to open the browser with a startup script, this points to a Printview.aspx. (Must go after the ModSettings has been init.)
            if (_print != "")
            {
                Page.ClientScript.RegisterStartupScript(this.GetType(), "printorder", "window.open('" + StoreSettings.NBrightBuyPath() + "/PrintView.aspx?itemid=" + _entryid + "&printcode=" + _print + "&template=" + _printtemplate + "&theme=" + ModSettings.Get("theme") + "','_blank');", true);
            }

            CtrlPaging.Visible        = true;
            CtrlPaging.UseListDisplay = true;
            try
            {
                if (_entryid != "")
                {
                    _displayentrypage = true;
                }

                #region "load templates"

                // Get Search
                var rpSearchTempl = ModCtrl.GetTemplateData(ModSettings, "orderssearch.html", Utils.GetCurrentCulture(), DebugMode);
                _templSearch          = NBrightBuyUtils.GetGenXmlTemplate(rpSearchTempl, ModSettings.Settings(), PortalSettings.HomeDirectory);
                rpSearch.ItemTemplate = _templSearch;

                var t1 = "ordersheader.html";
                var t2 = "ordersbody.html";
                var t3 = "ordersfooter.html";

                if (Utils.IsNumeric(_entryid))
                {
                    t1 = "ordersdetailheader.html";
                    t2 = "ordersdetail.html";
                    t3 = "ordersdetailfooter.html";
                }

                // Get Display Header
                var rpDataHTempl = ModCtrl.GetTemplateData(ModSettings, t1, Utils.GetCurrentCulture(), DebugMode);
                rpDataH.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(rpDataHTempl, ModSettings.Settings(), PortalSettings.HomeDirectory);
                // Get Display Body
                var rpDataTempl = ModCtrl.GetTemplateData(ModSettings, t2, Utils.GetCurrentCulture(), DebugMode);
                rpData.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(rpDataTempl, ModSettings.Settings(), PortalSettings.HomeDirectory);
                // Get Display Footer
                var rpDataFTempl = ModCtrl.GetTemplateData(ModSettings, t3, Utils.GetCurrentCulture(), DebugMode);
                rpDataF.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(rpDataFTempl, ModSettings.Settings(), PortalSettings.HomeDirectory);

                if (Utils.IsNumeric(_entryid))
                {
                    var rpItemHTempl = ModCtrl.GetTemplateData(ModSettings, "ordersdetailitemheader.html", Utils.GetCurrentCulture(), DebugMode);
                    rpItemH.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(rpItemHTempl, ModSettings.Settings(), PortalSettings.HomeDirectory);
                    // Get Display Body
                    var rpItemTempl = ModCtrl.GetTemplateData(ModSettings, "ordersdetailitem.html", Utils.GetCurrentCulture(), DebugMode);
                    rpItem.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(rpItemTempl, ModSettings.Settings(), PortalSettings.HomeDirectory);
                    // Get Display Footer
                    var rpItemFTempl = ModCtrl.GetTemplateData(ModSettings, "ordersdetailitemfooter.html", Utils.GetCurrentCulture(), DebugMode);
                    rpItemF.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(rpItemFTempl, ModSettings.Settings(), PortalSettings.HomeDirectory);
                }
                else
                {
                    rpItemH.Visible = false;
                    rpItem.Visible  = false;
                    rpItemF.Visible = false;
                }
                #endregion
            }
            catch (Exception exc)
            {
                //display the error on the template (don;t want to log it here, prefer to deal with errors directly.)
                var l = new Literal();
                l.Text = exc.ToString();
                phData.Controls.Add(l);
            }
        }
Ejemplo n.º 14
0
        protected void CtrlItemCommand(object source, RepeaterCommandEventArgs e)
        {
            var cArg  = e.CommandArgument.ToString();
            var param = new string[3];

            if (Utils.RequestParam(Context, "eid") != "")
            {
                param[0] = "eid=" + Utils.RequestParam(Context, "eid");
            }

            switch (e.CommandName.ToLower())
            {
            case "additems":
                // save before add
                UpdateCartAddresses();
                UpdateCartInfo();
                SaveCart();
                // add item
                _cartInfo.AddItem(rpData, StoreSettings.Current.SettingsInfo, e.Item.ItemIndex, DebugMode);
                _cartInfo.Save();
                Response.Redirect(Globals.NavigateURL(TabId, "", param), true);
                break;

            case "addqty":
                if (!Utils.IsNumeric(cArg))
                {
                    cArg = "1";
                }
                if (Utils.IsNumeric(cArg))
                {
                    _cartInfo.UpdateItemQty(e.Item.ItemIndex, Convert.ToInt32(cArg));
                    _cartInfo.Save();
                }
                Response.Redirect(Globals.NavigateURL(TabId, "", param), true);
                break;

            case "removeqty":
                if (!Utils.IsNumeric(cArg))
                {
                    cArg = "-1";
                }
                if (Utils.IsNumeric(cArg))
                {
                    _cartInfo.UpdateItemQty(e.Item.ItemIndex, Convert.ToInt32(cArg));
                    _cartInfo.Save();
                }
                Response.Redirect(Globals.NavigateURL(TabId, "", param), true);
                break;

            case "deletecartitem":
                UpdateCartAddresses();
                UpdateCartInfo();
                SaveCart();
                if (cArg == "")
                {
                    _cartInfo.RemoveItem(e.Item.ItemIndex);
                }
                else
                {
                    _cartInfo.RemoveItem(cArg);
                }
                _cartInfo.Save();
                Response.Redirect(Globals.NavigateURL(TabId, "", param), true);
                break;

            case "deletecart":
                _cartInfo.DeleteCart();
                Response.Redirect(Globals.NavigateURL(TabId, "", param), true);
                break;

            case "updatecart":
                UpdateCartAddresses();
                UpdateCartInfo();
                SaveCart();
                Response.Redirect(Globals.NavigateURL(TabId, "", param), true);
                break;

            case "confirm":
                UpdateCartAddresses();
                UpdateCartInfo();
                SaveCart();
                Response.Redirect(Globals.NavigateURL(TabId, "", param), true);
                break;

            case "gotocart":
                if (_cartInfo.GetCartItemList().Count > 0)
                {
                    UpdateCartInfo();
                    SaveCart();
                    var paytabid = ModSettings.Get("paymenttab");
                    if (!Utils.IsNumeric(paytabid))
                    {
                        paytabid = TabId.ToString("");
                    }
                    Response.Redirect(Globals.NavigateURL(Convert.ToInt32(paytabid), "", param), true);
                }
                Response.Redirect(Globals.NavigateURL(TabId, "", param), true);
                break;

            case "order":
                if (_cartInfo.GetCartItemList().Count > 0)
                {
                    _cartInfo.SetValidated(true);
                    _cartInfo.Lang = Utils.GetCurrentCulture();      // set lang so we can send emails in same language the order was made in.
                    UpdateCartAddresses();
                    UpdateCartInfo();
                    SaveCart(true);     // remove zero qty items on order, so they don;t appear in BO or on order.
                    _addressData.AddAddress(rpAddrS);
                    _addressData.AddAddress(rpAddrB);
                    var paytabid = ModSettings.Get("paymenttab");
                    if (!Utils.IsNumeric(paytabid))
                    {
                        paytabid = TabId.ToString("");
                    }
                    Response.Redirect(Globals.NavigateURL(Convert.ToInt32(paytabid), "", param), true);
                }
                Response.Redirect(Globals.NavigateURL(TabId, "", param), true);
                break;

            case "saveshipaddress":
                UpdateCartAddresses();
                _cartInfo.Save();
                _addressData.AddAddress(rpAddrS);
                Response.Redirect(Globals.NavigateURL(TabId, "", param), true);
                break;

            case "savebilladdress":
                UpdateCartAddresses();
                _cartInfo.Save();
                _addressData.AddAddress(rpAddrB);
                Response.Redirect(Globals.NavigateURL(TabId, "", param), true);
                break;
            }
        }
Ejemplo n.º 15
0
        private void PageLoad()
        {
            #region " Cart List Data Repeater"


            if (_templD.Trim() != "") // if we don;t have a template, don't do anything
            {
                var groupresults = ModSettings.Get("chkgroupresults") == "True";
                var l            = _cartInfo.GetCartItemList(groupresults);
                rpData.DataSource = l;
                rpData.DataBind();
            }

            var cartL = new List <NBrightInfo>();
            cartL.Add(_cartInfo.GetInfo());

            // display header
            rpDataH.DataSource = cartL;
            rpDataH.DataBind();

            // display footer
            rpDataF.DataSource = cartL;
            rpDataF.DataBind();

            #endregion

            if (carttype == "3") // full cart list
            {
                // display footer
                cartL[0].SetXmlProperty("genxml/hidden/currentcartstage", cartL[0].GetXmlProperty("genxml/currentcartstage")); // set the cart stage so we appear on correct stage.
                checkoutlayout.DataSource = cartL;
                checkoutlayout.DataBind();
            }
            if (carttype == "2") // full checkout
            {
                // display footer
                cartL[0].SetXmlProperty("genxml/hidden/currentcartstage", cartL[0].GetXmlProperty("genxml/currentcartstage")); // set the cart stage so we appear on correct stage.
                checkoutlayout.DataSource = cartL;
                checkoutlayout.DataBind();

                var objl     = new List <NBrightInfo>();
                var billaddr = _cartInfo.GetBillingAddress();
                if (billaddr.XMLData == null)
                {
                    var defAddr = _addressData.GetDefaultAddress();
                    if (defAddr == null)
                    {
                        var cookieaddr = Cookie.GetCookieValue(PortalId, "cartaddress", "billingaddress", "cartaddress");
                        billaddr.XMLData = cookieaddr;
                    }
                    else
                    {
                        billaddr.XMLData = defAddr.XMLData;
                    }
                }
                objl.Add(billaddr);
                rpAddrB.DataSource = objl;
                rpAddrB.DataBind();

                objl = new List <NBrightInfo>();
                objl.Add(_cartInfo.GetShippingAddress());
                rpAddrS.DataSource = objl;
                rpAddrS.DataBind();

                // display shipping input form
                objl = new List <NBrightInfo>();
                objl.Add(_cartInfo.GetShipData());
                rpShip.DataSource = objl;
                rpShip.DataBind();

                // display extra input form
                objl = new List <NBrightInfo>();
                objl.Add(_cartInfo.GetExtraInfo());
                rpExtra.DataSource = objl;
                rpExtra.DataBind();
            }
        }
Ejemplo n.º 16
0
        override protected void OnInit(EventArgs e)
        {
            EnablePaging = true;

            base.OnInit(e);

            if (ModSettings.Get("themefolder") == "")  // if we don't have module setting jump out
            {
                rpDataH.ItemTemplate = new GenXmlTemplate("NO MODULE SETTINGS");
                return;
            }

            CtrlPaging.Visible = false; // don't bother with paging on this module.
            try
            {
                #region "set templates based on entry id (eid) from url"

                _entryid = Utils.RequestQueryStringParam(Context, "eid");

                if (_entryid != "")
                {
                    _displayentrypage = true;
                }

                // get template codes
                if (_displayentrypage)
                {
                    _templH = ModSettings.Get("txtdetailheader");
                    _templD = ModSettings.Get("txtdetailbody");
                    _templF = ModSettings.Get("txtdetailfooter");
                }
                else
                {
                    _templH = ModSettings.Get("txtdisplayheader");
                    _templD = ModSettings.Get("txtdisplaybody");
                    _templF = ModSettings.Get("txtdisplayfooter");
                }

                _templIH = ModSettings.Get("txtitemdetailheader");
                _templID = ModSettings.Get("txtitemdetailbody");
                _templIF = ModSettings.Get("txtitemdetailfooter");

                #endregion

                // Get Search
                var rpSearchTempl = ModCtrl.GetTemplateData(ModSettings, "orderadminsearch.html", Utils.GetCurrentCulture(), DebugMode);
                _templSearch          = NBrightBuyUtils.GetGenXmlTemplate(rpSearchTempl, ModSettings.Settings(), PortalSettings.HomeDirectory);
                rpSearch.ItemTemplate = _templSearch;

                // Get Display Header
                var rpDataHTempl   = ModCtrl.GetTemplateData(ModSettings, _templH, Utils.GetCurrentCulture(), DebugMode);
                var templateHeader = NBrightBuyUtils.GetGenXmlTemplate(rpDataHTempl, ModSettings.Settings(), PortalSettings.HomeDirectory);
                rpDataH.ItemTemplate = templateHeader;

                // insert page header text
                NBrightBuyUtils.IncludePageHeaders(ModCtrl, ModuleId, Page, templateHeader, ModSettings.Settings(), null, DebugMode);


                // 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);

                if (Utils.IsNumeric(_entryid))
                {
                    var rpItemHTempl = ModCtrl.GetTemplateData(ModSettings, _templIH, Utils.GetCurrentCulture(), DebugMode);
                    rpItemH.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(rpItemHTempl, ModSettings.Settings(), PortalSettings.HomeDirectory);
                    // Get Display Body
                    var rpItemTempl = ModCtrl.GetTemplateData(ModSettings, _templID, Utils.GetCurrentCulture(), DebugMode);
                    rpItem.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(rpItemTempl, ModSettings.Settings(), PortalSettings.HomeDirectory);
                    // Get Display Footer
                    var rpItemFTempl = ModCtrl.GetTemplateData(ModSettings, _templIF, Utils.GetCurrentCulture(), DebugMode);
                    rpItemF.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(rpItemFTempl, ModSettings.Settings(), PortalSettings.HomeDirectory);
                }
                else
                {
                    rpItemH.Visible = false;
                    rpItem.Visible  = false;
                    rpItemF.Visible = false;
                }
            }
            catch (Exception exc)
            {
                //display the error on the template (don;t want to log it here, prefer to deal with errors directly.)
                var l = new Literal();
                l.Text = exc.ToString();
                phData.Controls.Add(l);
            }
        }
Ejemplo n.º 17
0
        override protected 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.
            }
        }
Ejemplo n.º 18
0
        private void PageLoad()
        {
            NBrightInfo objCat = null;

            #region "Data Repeater"
            if (_templD.Trim() != "")  // if we don;t have a template, don't do anything
            {
                if (_displayentrypage)
                {
                    // get correct itemid, based on eid given
                    if (_ename != "")
                    {
                        var o = ModCtrl.GetByGuidKey(PortalId, ModuleId, EntityTypeCodeLang, _ename);
                        if (o == null)
                        {
                            o = ModCtrl.GetByGuidKey(PortalId, ModuleId, EntityTypeCode, _ename);
                            if (o != null)
                            {
                                _eid = o.ItemID.ToString("");
                            }
                        }
                        else
                        {
                            _eid = o.ParentItemId.ToString("");
                        }
                    }

                    DisplayDataEntryRepeater(_eid);
                }
                else
                {
                    #region "Order BY"
                    // get orderby from header if it's there
                    var cachekey = "GetSqlOrderBy*rpDataH" + _templH + "*" + ModuleId.ToString();
                    _strOrder = (String)Utils.GetCache(cachekey);
                    if (_strOrder == null || StoreSettings.Current.DebugMode)
                    {
                        _strOrder = GenXmlFunctions.GetSqlOrderBy(rpDataH);
                    }

                    //Default orderby if not set
                    if (String.IsNullOrEmpty(_strOrder))
                    {
                        _strOrder = " Order by ModifiedDate DESC  ";
                    }
                    // NOTE: This setting may be overwritten by the navigatedata class in the filter setup
                    #endregion

                    #region "Get Paging setup"
                    //See if we have a pagesize, uses the "searchpagesize" tag token.
                    // : This can be overwritten by the cookie value if we need user selection of pagesize.
                    CtrlPaging.Visible = false;

                    #region "Get pagesize, from best place"
                    var pageSize = 0;
                    if (Utils.IsNumeric(_navigationdata.PageSize))
                    {
                        pageSize = Convert.ToInt32(_navigationdata.PageSize);
                    }
                    if (!Utils.IsNumeric(pageSize) && Utils.IsNumeric(ModSettings.Get("pagesize")))
                    {
                        pageSize = Convert.ToInt32(ModSettings.Get("pagesize"));
                    }
                    //check for url param page size
                    if (Utils.IsNumeric(_pagesize) && (_pagemid == "" | _pagemid == ModuleId.ToString(CultureInfo.InvariantCulture)))
                    {
                        pageSize = Convert.ToInt32(_pagesize);
                    }
                    if (pageSize == 0)
                    {
                        var strPgSize = "";
                        if (_templateHeader != null)
                        {
                            strPgSize = _templateHeader.GetHiddenFieldValue("searchpagesize");
                        }
                        if (_templateHeader != null && strPgSize == "")
                        {
                            strPgSize = _templateHeader.GetHiddenFieldValue("pagesize");
                        }
                        if (Utils.IsNumeric(strPgSize))
                        {
                            pageSize = Convert.ToInt32(strPgSize);
                        }
                    }
                    if (pageSize > 0)
                    {
                        CtrlPaging.Visible = true;
                    }
                    _navigationdata.PageSize = pageSize.ToString("");
                    #endregion

                    var pageNumber = 1;
                    //check for url param paging
                    if (Utils.IsNumeric(_pagenum) && (_pagemid == "" | _pagemid == ModuleId.ToString(CultureInfo.InvariantCulture)))
                    {
                        pageNumber = Convert.ToInt32(_pagenum);
                    }

                    //Get returnlimt from module settings
                    var returnlimit    = 0;
                    var strreturnlimit = ModSettings.Get("returnlimit");
                    if (Utils.IsNumeric(strreturnlimit))
                    {
                        returnlimit = Convert.ToInt32(strreturnlimit);
                    }

                    #endregion

                    #region "Get filter setup"

                    // check the display header to see if we have a sqlfilter defined.
                    var strFilter = "";
                    cachekey = "GetSqlSearchFilters*rpDataH" + _templH + "*" + ModuleId.ToString();
                    var strHeaderFilter = (String)Utils.GetCache(cachekey);
                    if (strHeaderFilter == null || StoreSettings.Current.DebugMode)
                    {
                        strHeaderFilter = GenXmlFunctions.GetSqlSearchFilters(rpDataH);
                    }

                    // filter mode and will persist past category selection.
                    if ((_catid == "" && _catname == ""))
                    {
                        if (!_navigationdata.FilterMode)
                        {
                            _navigationdata.CategoryId = 0;                              // filter mode persist catid
                        }
                        // if navdata is not deleted then get filter from navdata, created by productsearch module.
                        strFilter = _navigationdata.Criteria;
                        if (!strFilter.Contains(strHeaderFilter))
                        {
                            strFilter += " " + strHeaderFilter;
                        }
                        if (!String.IsNullOrEmpty(_navigationdata.OrderBy))
                        {
                            _strOrder = _navigationdata.OrderBy;
                        }

                        if (_navigationdata.Mode.ToLower() == "s")
                        {
                            _navigationdata.ResetSearch();                                        // single search so clear after
                        }
                    }
                    else
                    {
                        _navigationdata.ResetSearch();

                        // We have a category selected (in url), so overwrite categoryid navigationdata.
                        // This allows the return to the same category after a returning from a entry view.
                        if (Utils.IsNumeric(_catid))
                        {
                            _navigationdata.CategoryId = Convert.ToInt32(_catid);
                        }
                        strFilter = strHeaderFilter;
                    }

                    #endregion

                    #region "Get Category select setup"

                    //get default catid.
                    var catseo   = _catid;
                    var defcatid = ModSettings.Get("defaultcatid");
                    if (Utils.IsNumeric(defcatid))
                    {
                        // if we have no filter use the default category
                        if (_catid == "" && strFilter.Trim() == "")
                        {
                            _catid = defcatid;
                        }

                        // If we have a static list,then always display the default category
                        if (ModSettings.Get("staticlist") == "True")
                        {
                            _catid = defcatid;
                        }
                    }
                    else
                    {
                        defcatid = ModSettings.Get("defaultpropertyid");
                        if (Utils.IsNumeric(defcatid))
                        {
                            // if we have no filter use the default category
                            if (_catid == "" && strFilter.Trim() == "")
                            {
                                _catid = defcatid;
                            }

                            // If we have a static list,then always display the default category
                            if (ModSettings.Get("staticlist") == "True")
                            {
                                _catid = defcatid;
                            }
                        }
                    }

                    //check if we are display categories
                    // get category list data
                    if (_catname != "") // if catname passed in url, calculate what the catid is
                    {
                        objCat = ModCtrl.GetByGuidKey(PortalId, ModuleId, "CATEGORYLANG", _catname);
                        if (objCat == null)
                        {
                            // check it's not just a single language
                            objCat = ModCtrl.GetByGuidKey(PortalId, ModuleId, "CATEGORY", _catname);
                            if (objCat != null)
                            {
                                _catid = objCat.ItemID.ToString("");
                            }
                        }
                        else
                        {
                            _catid = objCat.ParentItemId.ToString("");
                            if (!String.IsNullOrEmpty(objCat.GUIDKey) && Utils.IsNumeric(_catid) && objCat.Lang != Utils.GetCurrentCulture())
                            {
                                // do a 301 redirect to correct url for the langauge (If the langauge is changed on the product list, we need to make sure we have the correct catref for the langauge)
                                var catGrpCtrl = new GrpCatController(Utils.GetCurrentCulture());
                                var activeCat  = catGrpCtrl.GetCategory(Convert.ToInt32(_catid));
                                if (activeCat != null && (activeCat.categoryrefGUIDKey == _catname))
                                {
                                    var redirecturl = "";
                                    if (Utils.IsNumeric(_eid))
                                    {
                                        var prdData = ProductUtils.GetProductData(Convert.ToInt32(_eid), Utils.GetCurrentCulture());
                                        redirecturl = NBrightBuyUtils.GetEntryUrl(PortalId, _eid, _modkey, prdData.SEOName, TabId.ToString(), "", activeCat.categoryrefGUIDKey);
                                    }
                                    else
                                    {
                                        redirecturl = catGrpCtrl.GetCategoryUrl(activeCat, TabId, objCat.Lang);
                                    }

                                    try
                                    {
                                        if (redirecturl != "")
                                        {
                                            Response.Redirect(redirecturl, false);
                                            Response.StatusCode = (int)System.Net.HttpStatusCode.MovedPermanently;
                                            Response.End();
                                        }
                                    }
                                    catch (Exception)
                                    {
                                        // catch err
                                    }
                                }
                            }
                        }
                        // We have a category selected (in url), so overwrite categoryid navigationdata.
                        // This allows the return to the same category after a returning from a entry view.
                        if (Utils.IsNumeric(_catid))
                        {
                            _navigationdata.CategoryId = Convert.ToInt32(_catid);
                        }
                        catseo = _catid;
                    }

                    if (Utils.IsNumeric(_catid))
                    {
                        var objQual = DotNetNuke.Data.DataProvider.Instance().ObjectQualifier;
                        var dbOwner = DataProvider.Instance().DatabaseOwner;
                        if (ModSettings.Get("chkcascaderesults").ToLower() == "true")
                        {
                            strFilter = strFilter + " and NB1.[ItemId] in (select parentitemid from " + dbOwner + "[" + objQual + "NBrightBuy] where (typecode = 'CATCASCADE' or typecode = 'CATXREF') and XrefItemId = " + _catid + ") ";
                        }
                        else
                        {
                            strFilter = strFilter + " and NB1.[ItemId] in (select parentitemid from " + dbOwner + "[" + objQual + "NBrightBuy] where typecode = 'CATXREF' and XrefItemId = " + _catid + ") ";
                        }

                        if (Utils.IsNumeric(catseo))
                        {
                            var objSEOCat = ModCtrl.GetData(Convert.ToInt32(catseo), "CATEGORYLANG", Utils.GetCurrentCulture());
                            if (objSEOCat != null && _eid == "") // we may have a detail page and listonly module, in which can we need the product detail as page title
                            {
                                //Page Title
                                var seoname = objSEOCat.GetXmlProperty("genxml/lang/genxml/textbox/txtseoname");
                                if (seoname == "")
                                {
                                    seoname = objSEOCat.GetXmlProperty("genxml/lang/genxml/textbox/txtcategoryname");
                                }

                                var newBaseTitle = objSEOCat.GetXmlProperty("genxml/lang/genxml/textbox/txtseopagetitle");
                                if (newBaseTitle == "")
                                {
                                    newBaseTitle = objSEOCat.GetXmlProperty("genxml/lang/genxml/textbox/txtseoname");
                                }
                                if (newBaseTitle == "")
                                {
                                    newBaseTitle = objSEOCat.GetXmlProperty("genxml/lang/genxml/textbox/txtcategoryname");
                                }
                                if (newBaseTitle != "")
                                {
                                    BasePage.Title = newBaseTitle;
                                }
                                //Page KeyWords
                                var newBaseKeyWords = objSEOCat.GetXmlProperty("genxml/lang/genxml/textbox/txtmetakeywords");
                                if (newBaseKeyWords != "")
                                {
                                    BasePage.KeyWords = newBaseKeyWords;
                                }
                                //Page Description
                                var newBaseDescription = objSEOCat.GetXmlProperty("genxml/lang/genxml/textbox/txtmetadescription");
                                if (newBaseDescription == "")
                                {
                                    newBaseDescription = objSEOCat.GetXmlProperty("genxml/lang/genxml/textbox/txtcategorydesc");
                                }
                                if (newBaseDescription != "")
                                {
                                    BasePage.Description = newBaseDescription;
                                }

                                if (PortalSettings.HomeTabId == TabId)
                                {
                                    PageIncludes.IncludeCanonicalLink(Page, Globals.AddHTTP(PortalSettings.PortalAlias.HTTPAlias)); //home page always default of site.
                                }
                                else
                                {
                                    PageIncludes.IncludeCanonicalLink(Page, NBrightBuyUtils.GetListUrl(PortalId, TabId, objSEOCat.ItemID, seoname, Utils.GetCurrentCulture()));
                                }
                            }
                        }

                        if (_strOrder == "{bycategoryproduct}")
                        {
                            _strOrder += _catid;                                     // do special custom sort in each cateogry
                        }
                    }
                    else
                    {
                        if (!_navigationdata.FilterMode)
                        {
                            _navigationdata.CategoryId = 0;                              // filter mode persist catid
                        }
                        if (_strOrder == "{bycategoryproduct}")
                        {
                            _strOrder = " Order by ModifiedDate DESC  ";
                        }
                    }

                    #endregion

                    #region "Apply provider product filter"
                    // Special filtering can be done, by using the ProductFilter interface.
                    var productfilterkey = "";
                    if (_templateHeader != null)
                    {
                        productfilterkey = _templateHeader.GetHiddenFieldValue("providerfilterkey");
                    }
                    if (productfilterkey != "")
                    {
                        var provfilter = FilterInterface.Instance(productfilterkey);
                        if (provfilter != null)
                        {
                            strFilter = provfilter.GetFilter(strFilter, _navigationdata, ModSettings, Context);
                        }
                    }
                    #endregion

                    #region "itemlists (wishlist)"

                    // if we have a itemListName field then get the itemlist cookie.
                    if (_templateHeader != null)
                    {
                        _itemListName = _templateHeader.GetHiddenFieldValue("itemlistname");
                    }
                    if (_itemListName != "")
                    {
                        var cw = new ItemListData(_itemListName);
                        if (cw.Exists && cw.ItemCount > 0)
                        {
                            strFilter = " and (";
                            foreach (var i in cw.GetItemList())
                            {
                                strFilter += " NB1.itemid = '" + i + "' or";
                            }
                            strFilter = strFilter.Substring(0, (strFilter.Length - 3)) + ") ";     // remove the last "or"
                        }
                        else
                        {
                            //no data in list so select false itemid to stop anything displaying
                            strFilter += " and (NB1.itemid = '-1') ";
                        }
                    }

                    #endregion


                    // save navigation data
                    _navigationdata.PageModuleId = Utils.RequestParam(Context, "pagemid");
                    _navigationdata.PageNumber   = Utils.RequestParam(Context, "page");
                    if (Utils.IsNumeric(_catid))
                    {
                        _navigationdata.PageName = NBrightBuyUtils.GetCurrentPageName(Convert.ToInt32(_catid));
                    }

                    // save the last active modulekey to a cookie, so it can be used by the "NBrightBuyUtils.GetReturnUrl" function
                    NBrightCore.common.Cookie.SetCookieValue(PortalId, "NBrigthBuyLastActive", "ModuleKey", ModuleKey, 1);

                    strFilter += " and (NB3.Visible = 1) "; // get only visible products

                    var recordCount = ModCtrl.GetDataListCount(PortalId, ModuleId, "PRD", strFilter, "PRDLANG", Utils.GetCurrentCulture(), DebugMode);

                    _navigationdata.RecordCount = recordCount.ToString("");
                    _navigationdata.Save();

                    if (returnlimit > 0 && returnlimit < recordCount)
                    {
                        recordCount = returnlimit;
                    }

                    var l = ModCtrl.GetDataList(PortalId, ModuleId, "PRD", "PRDLANG", Utils.GetCurrentCulture(), strFilter, _strOrder, DebugMode, "", returnlimit, pageNumber, pageSize, recordCount);
                    rpData.DataSource = l;
                    rpData.DataBind();

                    if (_navigationdata.SingleSearchMode)
                    {
                        _navigationdata.ResetSearch();
                    }

                    if (pageSize > 0)
                    {
                        CtrlPaging.PageSize     = pageSize;
                        CtrlPaging.CurrentPage  = pageNumber;
                        CtrlPaging.TotalRecords = recordCount;
                        CtrlPaging.BindPageLinks();
                    }

                    // display header (Do header after the data return so the productcount works)
                    if (objCat == null)
                    {
                        base.DoDetail(rpDataH, ModuleId);
                    }
                    else
                    {
                        if (StoreSettings.Current.DebugModeFileOut)
                        {
                            objCat.XMLDoc.Save(PortalSettings.HomeDirectoryMapPath + "debug_categoryproductheader.xml");
                        }
                        DoDetail(rpDataH, objCat);
                    }
                }
            }

            #endregion


            // display footer
            base.DoDetail(rpDataF);
        }
Ejemplo n.º 19
0
        override protected void OnInit(EventArgs e)
        {
            _eid           = Utils.RequestQueryStringParam(Context, "eid");
            _print         = Utils.RequestParam(Context, "print");
            _printtemplate = Utils.RequestParam(Context, "template");

            EnablePaging = true;

            base.OnInit(e);

            // if guidkey entered instead of eid, find it using the guid and assign to _eid
            _guidkey = Utils.RequestQueryStringParam(Context, "guidkey");
            if (_guidkey == "")
            {
                _guidkey = Utils.RequestQueryStringParam(Context, "ref");
            }
            if (_eid == "" && _guidkey != "")
            {
                var guidData = ModCtrl.GetByGuidKey(PortalId, -1, "PRD", _guidkey);
                if (guidData != null)
                {
                    _eid = guidData.ItemID.ToString("D");
                }
                else
                {
                    _eid = "0";
                }
            }

            // if we want to print we need to open the browser with a startup script, this points to a Printview.aspx. (Must go after the ModSettings has been init.)
            if (_print != "")
            {
                Page.ClientScript.RegisterStartupScript(this.GetType(), "printproduct", "window.open('" + StoreSettings.NBrightBuyPath() + "/PrintView.aspx?itemid=" + _eid + "&printcode=" + _print + "&template=" + _printtemplate + "&theme=" + ModSettings.Get("themefolder") + "','_blank');", true);
            }

            if (ModuleKey == "")  // if we don't have module setting jump out
            {
                rpDataH.ItemTemplate = new GenXmlTemplate("NO MODULE SETTINGS");
                return;
            }

            _navigationdata = new NavigationData(PortalId, ModuleKey);

            // Pass in a template specifying the token to create a friendly url for paging.
            // (NOTE: we need this in NBS becuase the edit product from list return url will copy the page number and hence paging will not work after editing if we don;t do this)
            CtrlPaging.HrefLinkTemplate = "[<tag type='valueof' databind='PreText' />][<tag type='if' databind='Text' testvalue='' display='{OFF}' />][<tag type='hrefpagelink' moduleid='" + ModuleId.ToString("") + "' />][<tag type='endif' />][<tag type='valueof' databind='PostText' />]";
            CtrlPaging.UseListDisplay   = true;
            try
            {
                _catid   = Utils.RequestQueryStringParam(Context, "catid");
                _catname = Utils.RequestQueryStringParam(Context, "catref");

                #region "set templates based on entry id (eid) from url"

                _ename        = Utils.RequestQueryStringParam(Context, "entry");
                _modkey       = Utils.RequestQueryStringParam(Context, "modkey");
                _pagemid      = Utils.RequestQueryStringParam(Context, "pagemid");
                _pagenum      = Utils.RequestQueryStringParam(Context, "page");
                _pagesize     = Utils.RequestQueryStringParam(Context, "pagesize");
                _orderbyindex = Utils.RequestQueryStringParam(Context, "orderby");


                // see if we need to display the entry page.
                if ((_modkey == ModuleKey | _modkey == "") && (_eid != "" | _ename != ""))
                {
                    _displayentrypage = true;
                }

                // if we have entry detail display, but no catd, get the default one.
                if (_displayentrypage && _catid == "" && Utils.IsNumeric(_eid))
                {
                    var prdData = ProductUtils.GetProductData(Convert.ToInt32(_eid), Utils.GetCurrentCulture());
                    var defcat  = prdData.GetDefaultCategory();
                    if (defcat != null)
                    {
                        _catid = defcat.categoryid.ToString("");
                    }
                }

                if (ModSettings.Get("listonly").ToLower() == "true")
                {
                    _displayentrypage = false;
                }

                // get template codes
                if (_displayentrypage)
                {
                    _templH = ModSettings.Get("txtdisplayentryheader");
                    _templD = ModSettings.Get("txtdisplayentrybody");
                    _templF = ModSettings.Get("txtdisplayentryfooter");
                }
                else
                {
                    _templH = ModSettings.Get("txtdisplayheader");
                    _templD = ModSettings.Get("txtdisplaybody");
                    _templF = ModSettings.Get("txtdisplayfooter");
                }


                #endregion


                // Get Display Header
                var rpDataHTempl = ModCtrl.GetTemplateData(ModSettings, _templH, Utils.GetCurrentCulture(), DebugMode);

                //-------------------------------------------------------------------------
                //Get default sort order and filter from the displayheader template.  Use template data, becuase repeater is not fully initialized yet.
                _strOrder = _navigationdata.OrderBy;
                if (String.IsNullOrEmpty(_strOrder))
                {
                    _strOrder = GenXmlFunctions.GetSqlOrderBy(rpDataHTempl); // get default
                }
                if (_orderbyindex != "")                                     // if we have orderby set in url, find the meta tags
                {
                    _strOrder = GenXmlFunctions.GetSqlOrderBy(rpDataHTempl, _orderbyindex);
                    // save the selected orderby to the cookie, so we can page with it.
                    _navigationdata.OrderBy = _strOrder;
                }
                //-------------------------------------------------------------------------

                var cachekey = "GenXmlTemplate*rpDataH" + _templH + "*" + ModuleId.ToString();
                _templateHeader = (GenXmlTemplate)Utils.GetCache(cachekey);
                if (_templateHeader == null || StoreSettings.Current.DebugMode)
                {
                    _templateHeader = NBrightBuyUtils.GetGenXmlTemplate(rpDataHTempl, ModSettings.Settings(), PortalSettings.HomeDirectory);
                }
                rpDataH.ItemTemplate = _templateHeader;

                // insert page header text
                NBrightBuyUtils.IncludePageHeaders(ModCtrl, ModuleId, Page, _templateHeader, ModSettings.Settings(), null, DebugMode);

                // Get Display Body
                var rpDataTempl = ModCtrl.GetTemplateData(ModSettings, _templD, Utils.GetCurrentCulture(), DebugMode);
                //if body template doesn't contain a default moduleid add it.
                if (!rpDataTempl.ToLower().Contains("nbs:modeldefault"))
                {
                    rpDataTempl = "[<tag type='nbs:modeldefault' />]" + rpDataTempl;
                }
                // always add a productid hidden field to the data template (for add to cart)
                rpDataTempl = "[<tag type='hidden' id='productid' value='databind:itemid' />]" + rpDataTempl;

                cachekey = "GenXmlTemplate*rpData" + _templD + "*" + ModuleId.ToString();
                var gXml = (GenXmlTemplate)Utils.GetCache(cachekey);
                if (gXml == null || StoreSettings.Current.DebugMode)
                {
                    gXml = NBrightBuyUtils.GetGenXmlTemplate(rpDataTempl, ModSettings.Settings(), PortalSettings.HomeDirectory);
                }
                rpData.ItemTemplate = gXml;

                // Get Display Footer
                var rpDataFTempl = ModCtrl.GetTemplateData(ModSettings, _templF, Utils.GetCurrentCulture(), DebugMode);

                cachekey = "GenXmlTemplate*rpDataF" + _templF + "*" + ModuleId.ToString();
                gXml     = (GenXmlTemplate)Utils.GetCache(cachekey);
                if (gXml == null || StoreSettings.Current.DebugMode)
                {
                    gXml = NBrightBuyUtils.GetGenXmlTemplate(rpDataFTempl, ModSettings.Settings(), PortalSettings.HomeDirectory);
                }
                rpDataF.ItemTemplate = gXml;
            }
            catch (Exception exc)
            {
                // remove any cookie which might store SQL in error.
                _navigationdata.Delete();
                DisplayProductError(exc.ToString());
            }
        }
Ejemplo n.º 20
0
        protected void CtrlItemCommand(object source, RepeaterCommandEventArgs e)
        {
            var cArg          = e.CommandArgument.ToString();
            var param         = new string[3];
            var redirecttabid = "";
            var emailtemplate = "";

            switch (e.CommandName.ToLower())
            {
            case "saveprofile":
                _profileData.UpdateProfile(rpInp, DebugMode);

                emailtemplate = ModSettings.Get("emailtemplate");
                if (emailtemplate != "")
                {
                    NBrightBuyUtils.SendEmailToManager(emailtemplate, _profileData.GetProfile(), "profileupdated_emailsubject.Text");
                }

                param[0] = "msg=" + NotifyRef + "_" + NotifyCode.ok;
                NBrightBuyUtils.SetNotfiyMessage(ModuleId, NotifyRef, NotifyCode.ok);
                Response.Redirect(Globals.NavigateURL(TabId, "", param), true);
                break;

            case "register":

                var notifyCode = NotifyCode.fail;
                var failreason = "";

                var cap = (DotNetNuke.UI.WebControls.CaptchaControl)rpInp.Controls[0].FindControl("captcha");;
                if (cap == null || cap.IsValid)
                {
                    //create a new user and login
                    if (!this.UserInfo.IsInRole("Registered Users"))
                    {
                        // Create and hydrate User
                        var objUser = new UserInfo();
                        objUser.Profile.InitialiseProfile(this.PortalId, true);
                        objUser.PortalID                = PortalId;
                        objUser.DisplayName             = GenXmlFunctions.GetField(rpInp, "DisplayName");
                        objUser.Email                   = GenXmlFunctions.GetField(rpInp, "Email");
                        objUser.FirstName               = GenXmlFunctions.GetField(rpInp, "FirstName");
                        objUser.LastName                = GenXmlFunctions.GetField(rpInp, "LastName");
                        objUser.Username                = GenXmlFunctions.GetField(rpInp, "Username");
                        objUser.Profile.PreferredLocale = Utils.GetCurrentCulture();

                        if (objUser.Username == "")
                        {
                            objUser.Username = GenXmlFunctions.GetField(rpInp, "Email");
                        }
                        objUser.Membership.CreatedDate = System.DateTime.Now;
                        var passwd = GenXmlFunctions.GetField(rpInp, "Password");
                        if (passwd == "")
                        {
                            objUser.Membership.UpdatePassword = true;
                            passwd = UserController.GeneratePassword(9);
                        }
                        objUser.Membership.Password = passwd;
                        objUser.Membership.Approved = PortalSettings.UserRegistration == (int)Globals.PortalRegistrationType.PublicRegistration;

                        // Create the user
                        var createStatus = UserController.CreateUser(ref objUser);

                        DataCache.ClearPortalCache(PortalId, true);

                        switch (createStatus)
                        {
                        case UserCreateStatus.Success:
                            //boNotify = true;
                            if (objUser.Membership.Approved)
                            {
                                UserController.UserLogin(this.PortalId, objUser, PortalSettings.PortalName, AuthenticationLoginBase.GetIPAddress(), false);
                            }
                            notifyCode = NotifyCode.ok;
                            break;

                        case UserCreateStatus.DuplicateEmail:
                            failreason = "exists";
                            break;

                        case UserCreateStatus.DuplicateUserName:
                            failreason = "exists";
                            break;

                        case UserCreateStatus.UsernameAlreadyExists:
                            failreason = "exists";
                            break;

                        case UserCreateStatus.UserAlreadyRegistered:
                            failreason = "exists";
                            break;

                        default:
                            // registration error
                            break;
                        }

                        if (notifyCode == NotifyCode.ok)
                        {
                            _profileData  = new ProfileData(objUser.UserID, rpInp, DebugMode);    //create and update a profile for this new logged in user.
                            emailtemplate = ModSettings.Get("emailregisteredtemplate");
                            if (emailtemplate != "")
                            {
                                NBrightBuyUtils.SendEmailToManager(emailtemplate, _profileData.GetProfile(), "profileregistered_emailsubject.Text");
                            }
                            emailtemplate = ModSettings.Get("emailregisteredclienttemplate");
                            if (emailtemplate != "")
                            {
                                NBrightBuyUtils.SendEmail(objUser.Email, emailtemplate, _profileData.GetProfile(), "profileregistered_emailsubject.Text", "", objUser.Profile.PreferredLocale);
                            }
                        }
                    }
                }
                else
                {
                    NBrightBuyUtils.SetFormTempData(ModuleId, GenXmlFunctions.GetGenXml(rpInp));
                    failreason = "captcha";
                }

                param[0] = "msg=" + NotifyRef + "_" + notifyCode;
                if (!UserInfo.IsInRole(StoreSettings.ClientEditorRole) && ModSettings.Get("clientrole") == "True" && notifyCode == NotifyCode.ok)
                {
                    NBrightBuyUtils.SetNotfiyMessage(ModuleId, NotifyRef + "clientrole", notifyCode);
                }
                else
                {
                    NBrightBuyUtils.SetNotfiyMessage(ModuleId, NotifyRef + failreason, notifyCode);
                }

                if (notifyCode == NotifyCode.ok)
                {
                    redirecttabid = ModSettings.Get("ddlredirecttabid");
                }
                if (!Utils.IsNumeric(redirecttabid))
                {
                    redirecttabid = TabId.ToString("");
                }
                Response.Redirect(Globals.NavigateURL(Convert.ToInt32(redirecttabid), "", param), true);
                break;
            }
        }
Ejemplo n.º 21
0
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);

            _controlPath = ControlPath;

            if (ModSettings.Settings().ContainsKey("themefolder") && ModSettings.Settings()["themefolder"] != "")
            {
                ThemeFolder = ModSettings.Settings()["themefolder"];
            }
            if (ThemeFolder == "")
            {
                ThemeFolder = StoreSettings.Current.ThemeFolder;
            }

            if (ModSettings.Settings().ContainsKey("razortemplate") && ModSettings.Settings()["razortemplate"] != "")
            {
                RazorTemplate = ModSettings.Settings()["razortemplate"];
            }
            if (RazorTemplate == "" && ModSettings.Settings().ContainsKey("razorlisttemplate") && ModSettings.Settings()["razorlisttemplate"] != "")
            {
                RazorTemplate = ModSettings.Settings()["razorlisttemplate"];
            }
            if (RazorTemplate == "" && ModSettings.Settings().ContainsKey("razordetailtemplate") && ModSettings.Settings()["razordetailtemplate"] != "")
            {
                RazorTemplate = ModSettings.Settings()["razordetailtemplate"];
            }

            if (ModSettings != null)
            {
                // check if we're using a provider controlpath for the templates.
                var providercontrolpath = ModSettings.Get("providercontrolpath");
                if (providercontrolpath != "")
                {
                    _controlPath = "/DesktopModules/NBright/" + providercontrolpath + "/";
                }
            }


            // insert page header text
            NBrightBuyUtils.RazorIncludePageHeader(ModuleId, Page, "FrontOfficePageHeader.cshtml", _controlPath, ThemeFolder, ModSettings.Settings());

            // insert text in body.
            NBrightBuyUtils.RazorIncludePageBody(ModuleId, Page, "FrontOfficePageBody.cshtml", _controlPath, ThemeFolder, ModSettings.Settings());


            if (ModuleContext.Configuration != null)
            {
                if (String.IsNullOrEmpty(RazorTemplate))
                {
                    RazorTemplate = ModuleConfiguration.DesktopModule.ModuleName + ".cshtml";
                }

                // insert page header text
                NBrightBuyUtils.RazorIncludePageHeader(ModuleId, Page, Path.GetFileNameWithoutExtension(RazorTemplate) + "_head" + Path.GetExtension(RazorTemplate), _controlPath, ThemeFolder, ModSettings.Settings());
                // insert page body text for template name.
                NBrightBuyUtils.RazorIncludePageBody(ModuleId, Page, Path.GetFileNameWithoutExtension(RazorTemplate) + "_pageinject" + Path.GetExtension(RazorTemplate), _controlPath, ThemeFolder, ModSettings.Settings());
            }
            var strOut = "<span class='container_" + ThemeFolder + "_" + RazorTemplate + "'>";

            Controls.AddAt(0, new LiteralControl("<div class='container_" + ThemeFolder.ToLower().Replace(" ", "_") + "_" + RazorTemplate.ToLower().Replace(".cshtml", "").Replace(" ", "_") + "'>"));
            Controls.AddAt(Controls.Count, new LiteralControl("</div>"));
        }
Ejemplo n.º 22
0
        override protected void OnInit(EventArgs e)
        {
            base.OnInit(e);

            if (ModSettings.Get("themefolder") == "")  // if we don't have module setting jump out
            {
                rpPaymentGateways.ItemTemplate = new GenXmlTemplate("NO MODULE SETTINGS");
                return;
            }

            try
            {
                var pluginData = new PluginData(PortalSettings.Current.PortalId);
                _provList = pluginData.GetPaymentProviders();
                _cartInfo = new CartData(PortalId);

                var orderid     = Utils.RequestQueryStringParam(Context, "orderid");
                var templOk     = ModSettings.Get("paymentoktemplate");
                var templFail   = ModSettings.Get("paymentfailtemplate");
                var templHeader = "";
                var templFooter = "";
                var templText   = "";

                if ((_provList.Count == 0 || _cartInfo.PurchaseInfo.GetXmlPropertyDouble("genxml/appliedtotal") <= 0) && orderid == "")
                {
                    #region "No Payment providers, so process as a ordering system"

                    var displayTempl = templOk;
                    if (!_cartInfo.IsValidated())
                    {
                        displayTempl = templFail;
                    }

                    rpDetailDisplay.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(ModCtrl.GetTemplateData(ModSettings, displayTempl, Utils.GetCurrentCulture(), DebugMode), ModSettings.Settings(), PortalSettings.HomeDirectory);
                    _templateHeader = (GenXmlTemplate)rpDetailDisplay.ItemTemplate;

                    // we may have voucher discounts that give a zero appliedtotal, so process.
                    var discountprov = DiscountCodeInterface.Instance();
                    if (discountprov != null)
                    {
                        discountprov.UpdatePercentUsage(PortalId, UserId, _cartInfo.PurchaseInfo);
                        discountprov.UpdateVoucherAmount(PortalId, UserId, _cartInfo.PurchaseInfo);
                    }

                    #endregion
                }
                else
                {
                    #region "Payment Details"

                    // display the payment method by default
                    templHeader = ModSettings.Get("paymentordersummary");
                    templFooter = ModSettings.Get("paymentfooter");
                    var templPaymentText = "";
                    var msg = "";
                    if (Utils.IsNumeric(orderid))
                    {
                        // orderid exists, so must be return from bank; Process it!!
                        _orderData = new OrderData(PortalId, Convert.ToInt32(orderid));
                        _prov      = PaymentsInterface.Instance(_orderData.PaymentProviderKey);

                        msg = _prov.ProcessPaymentReturn(Context);
                        if (msg == "")                                                      // no message so successful
                        {
                            _orderData = new OrderData(PortalId, Convert.ToInt32(orderid)); // get the updated order.
                            _orderData.PaymentOk("050");
                            templText = templOk;
                        }
                        else
                        {
                            _orderData = new OrderData(PortalId, Convert.ToInt32(orderid)); // reload the order, becuase the status and typecode may have changed by the payment provider.
                            _orderData.AddAuditMessage(msg, "paymsg", "payment.ascx", "False");
                            _orderData.Save();
                            templText = templFail;
                        }
                        templFooter = ""; // return from bank, hide footer
                    }
                    else
                    {
                        // not returning from bank, so display list of payment providers.
                        rpPaymentGateways.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(GetPaymentProviderTemplates(), ModSettings.Settings(), PortalSettings.HomeDirectory);
                    }

                    if (templText == "")
                    {
                        templText = templHeader;                  // if we are NOT returning from bank, then display normal header summary template
                    }
                    templPaymentText = ModCtrl.GetTemplateData(ModSettings, templText, Utils.GetCurrentCulture(), DebugMode);

                    rpDetailDisplay.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(templPaymentText, ModSettings.Settings(), PortalSettings.HomeDirectory);
                    _templateHeader = (GenXmlTemplate)rpDetailDisplay.ItemTemplate;

                    if (templFooter != "")
                    {
                        var templPaymentFooterText = ModCtrl.GetTemplateData(ModSettings, templFooter, Utils.GetCurrentCulture(), DebugMode);
                        rpDetailFooter.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(templPaymentFooterText, ModSettings.Settings(), PortalSettings.HomeDirectory);
                    }

                    #endregion
                }


                // insert page header text
                NBrightBuyUtils.IncludePageHeaders(ModCtrl, ModuleId, Page, _templateHeader, ModSettings.Settings(), null, DebugMode);
            }
            catch (Exception exc)
            {
                //display the error on the template (don;t want to log it here, prefer to deal with errors directly.)
                var l = new Literal();
                l.Text = exc.ToString();
                phData.Controls.Add(l);
            }
        }
Ejemplo n.º 23
0
        override protected void OnInit(EventArgs e)
        {
            base.OnInit(e);

            _catGrpCtrl = new GrpCatController(Utils.GetCurrentCulture());

            if (ModSettings.Get("themefolder") == "")  // if we don't have module setting jump out
            {
                rpDataH.ItemTemplate = new GenXmlTemplate("NO MODULE SETTINGS");
                return;
            }

            try
            {
                _targetModuleKey = "";
                _targetModuleKey = ModSettings.Get("targetmodulekey");

                _entryid = Utils.RequestQueryStringParam(Context, "eid");
                _catid   = Utils.RequestQueryStringParam(Context, "catid");
                _catname = Utils.RequestQueryStringParam(Context, "catref");
                if (_catid == "" && _catname != "")
                {
                    _catid = CategoryUtils.GetCatIdFromName(_catname);
                }

                var navigationdata = new NavigationData(PortalId, _targetModuleKey);
                if (Utils.IsNumeric(_catid))
                {
                    navigationdata.Delete();                          // if a category button has been clicked (in url) then clear search;
                }
                if (Utils.IsNumeric(navigationdata.CategoryId) && navigationdata.FilterMode)
                {
                    _catid = navigationdata.CategoryId.ToString("D");
                }
                if (Utils.IsNumeric(_entryid))
                {
                    // Get catid from product
                    var prodData = ProductUtils.GetProductData(Convert.ToInt32(_entryid), Utils.GetCurrentCulture());
                    var catDef   = prodData.GetDefaultCategory();
                    if (catDef != null)
                    {
                        _catid = catDef.categoryid.ToString("");
                    }
                }
                if (_catid == "")
                {
                    _catid = ModSettings.Get("defaultcatid");
                }

                _templH     = ModSettings.Get("txtdisplayheader");
                _templD     = ModSettings.Get("txtdisplaybody");
                _templDfoot = ModSettings.Get("txtdisplaybodyfoot");
                _templF     = ModSettings.Get("txtdisplayfooter");

                _tabid = ModSettings.Get("ddllisttabid");
                if (!Utils.IsNumeric(_tabid))
                {
                    _tabid = TabId.ToString("");
                }

                // Get Display Header
                var rpDataHTempl = ModCtrl.GetTemplateData(ModSettings, _templH, Utils.GetCurrentCulture(), DebugMode);


                rpDataH.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(rpDataHTempl, ModSettings.Settings(), PortalSettings.HomeDirectory);
                _templateHeader      = (GenXmlTemplate)rpDataH.ItemTemplate;

                // insert page header text
                NBrightBuyUtils.IncludePageHeaders(ModCtrl, ModuleId, Page, _templateHeader, ModSettings.Settings(), null, DebugMode);

                // 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);
            }
            catch (Exception exc)
            {
                if (UserInfo.IsSuperUser)
                {
                    rpDataF.ItemTemplate = new GenXmlTemplate(exc.Message, ModSettings.Settings());
                }
                // catch any error and allow processing to continue, output error as footer template.
            }
        }
Ejemplo n.º 24
0
        private void RazorPageLoad()
        {
            NBrightInfo objCat = null;

            if (_templD.Trim() != "")  // if we don;t have a template, don't do anything
            {
                if (_displayentrypage)
                {
                    // get correct itemid, based on eid given
                    _eid = GetEntryIdFromName(_eid);
                    RazorDisplayDataEntry(_eid);
                }
                else
                {
                    // Get meta data from template

                    var metaTokens = NBrightBuyUtils.RazorPreProcessTempl(_templD, _controlPath, ModSettings.ThemeFolder, Utils.GetCurrentCulture(), ModSettings.Settings(), ModuleId.ToString());

                    #region "Order BY"

                    ////////////////////////////////////////////
                    // get ORDERBY SORT
                    ////////////////////////////////////////////
                    if (_orderbyindex != "") // if we have orderby set in url, find the meta tags
                    {
                        if (metaTokens.ContainsKey("orderby" + _orderbyindex))
                        {
                            if (metaTokens["orderby" + _orderbyindex].Contains("{") || metaTokens["orderby" + _orderbyindex].ToLower().Contains("order by"))
                            {
                                _navigationdata.OrderBy    = metaTokens["orderby" + _orderbyindex];
                                _navigationdata.OrderByIdx = _orderbyindex;
                            }
                            else
                            {
                                _navigationdata.OrderBy    = " Order by " + metaTokens["orderby" + _orderbyindex];
                                _navigationdata.OrderByIdx = _orderbyindex;
                            }
                            _navigationdata.Save();
                        }
                    }
                    else
                    {
                        if (String.IsNullOrEmpty(_navigationdata.OrderBy) && metaTokens.ContainsKey("orderby"))
                        {
                            if (metaTokens["orderby"].Contains("{") || metaTokens["orderby"].ToLower().Contains("order by"))
                            {
                                _navigationdata.OrderBy = metaTokens["orderby"];
                            }
                            else
                            {
                                _navigationdata.OrderBy = " Order by " + metaTokens["orderby"];
                            }
                            _navigationdata.OrderByIdx = "";
                            _navigationdata.Save();
                        }
                    }


                    #endregion

                    #region "Get Paging setup"

                    //See if we have a pagesize, uses the "searchpagesize" tag token.
                    // : This can be overwritten by the cookie value if we need user selection of pagesize.
                    CtrlPaging.Visible = false;

                    #region "Get pagesize, from best place"

                    var pageSize = 0;
                    if (Utils.IsNumeric(ModSettings.Get("pagesize")))
                    {
                        pageSize = Convert.ToInt32(ModSettings.Get("pagesize"));
                    }
                    // overwrite default module pagesize , if we have a pagesize control in the template
                    if (metaTokens.ContainsKey("selectpagesize") && Utils.IsNumeric(_navigationdata.PageSize))
                    {
                        pageSize = Convert.ToInt32(_navigationdata.PageSize);
                    }
                    //check for url param page size
                    if (Utils.IsNumeric(_pagesize) && (_pagemid == "" | _pagemid == ModuleId.ToString(CultureInfo.InvariantCulture)))
                    {
                        pageSize = Convert.ToInt32(_pagesize);
                    }
                    if (pageSize == 0)
                    {
                        var strPgSize = "";
                        if (metaTokens.ContainsKey("searchpagesize"))
                        {
                            strPgSize = metaTokens["searchpagesize"];
                        }
                        if (metaTokens.ContainsKey("pagesize") && strPgSize == "")
                        {
                            strPgSize = metaTokens["pagesize"];
                        }
                        if (Utils.IsNumeric(strPgSize))
                        {
                            pageSize = Convert.ToInt32(strPgSize);
                        }
                    }
                    if (pageSize > 0)
                    {
                        CtrlPaging.Visible = true;
                    }
                    _navigationdata.PageSize = pageSize.ToString("");

                    #endregion

                    var pageNumber = 1;
                    //check for url param paging
                    if (Utils.IsNumeric(_pagenum) && (_pagemid == "" | _pagemid == ModuleId.ToString(CultureInfo.InvariantCulture)))
                    {
                        pageNumber = Convert.ToInt32(_pagenum);
                    }

                    //Get returnlimt from module settings
                    var returnlimit    = 0;
                    var strreturnlimit = ModSettings.Get("returnlimit");
                    if (Utils.IsNumeric(strreturnlimit))
                    {
                        returnlimit = Convert.ToInt32(strreturnlimit);
                    }

                    #endregion

                    #region "Get filter setup"

                    // check the display header to see if we have a sqlfilter defined.
                    var strFilter         = "";
                    var sqlTemplateFilter = "";
                    if (metaTokens.ContainsKey("sqlfilter"))
                    {
                        sqlTemplateFilter = GenXmlFunctions.StripSqlCommands(metaTokens["sqlfilter"]);
                    }

                    if (_navigationdata.HasCriteria)
                    {
                        var paramcatid = Utils.RequestQueryStringParam(Context, "catid");
                        if (Utils.IsNumeric(paramcatid))
                        {
                            if (_navigationdata.CategoryId != Convert.ToInt32(paramcatid)) // filter mode DOES NOT persist catid (stop confusion when user selects a category)
                            {
                                _navigationdata.ResetSearch();
                            }
                        }

                        // if navdata is not deleted then get filter from navdata, created by productsearch module.
                        strFilter = _navigationdata.Criteria;
                        if (!strFilter.Contains(sqlTemplateFilter))
                        {
                            strFilter += " " + sqlTemplateFilter;
                        }

                        if (_navigationdata.Mode.ToLower() == "s")
                        {
                            _navigationdata.ResetSearch();                                        // single search so clear after
                        }
                    }
                    else
                    {
                        // reset search if category selected
                        // NOTE: keeping search across categories is VERY confusing for cleint, although it works logically.
                        _navigationdata.ResetSearch();
                        strFilter = sqlTemplateFilter;
                    }

                    #endregion

                    #region "Get Category select setup"

                    var objQual = DotNetNuke.Data.DataProvider.Instance().ObjectQualifier;
                    var dbOwner = DataProvider.Instance().DatabaseOwner;

                    //get default catid.
                    var catseo   = _catid;
                    var defcatid = ModSettings.Get("defaultcatid");
                    if (defcatid == "")
                    {
                        defcatid = "0";
                    }
                    if (Utils.IsNumeric(defcatid) && Convert.ToInt32(defcatid) > 0)
                    {
                        // if we have no filter use the default category
                        if (_catid == "" && strFilter.Trim() == "")
                        {
                            _catid = defcatid;
                        }
                    }
                    else
                    {
                        defcatid = ModSettings.Get("defaultpropertyid");
                        if (defcatid == "")
                        {
                            defcatid = "0";
                        }
                        if (Utils.IsNumeric(defcatid))
                        {
                            // if we have no filter use the default category
                            if (_catid == "" && strFilter.Trim() == "")
                            {
                                _catid = defcatid;
                            }
                        }
                    }

                    // If we have a static list,then always display the default category
                    if (ModSettings.Get("staticlist") == "True")
                    {
                        if (catseo == "")
                        {
                            catseo = _catid;
                        }
                        _catid = defcatid;
                        if (ModSettings.Get("chkcascaderesults").ToLower() == "true")
                        {
                            strFilter = strFilter + " and NB1.[ItemId] in (select parentitemid from " + dbOwner + "[" + objQual + "NBrightBuy] where (typecode = 'CATCASCADE' or typecode = 'CATXREF') and XrefItemId = " + _catid + ") ";
                        }
                        else
                        {
                            strFilter = strFilter + " and NB1.[ItemId] in (select parentitemid from " + dbOwner + "[" + objQual + "NBrightBuy] where typecode = 'CATXREF' and XrefItemId = " + _catid + ") ";
                        }

                        if (ModSettings.Get("caturlfilter") == "True" && catseo != "" && catseo != _catid)
                        {
                            // add aditional filter for catid filter on url (catseo holds catid from url)
                            if (ModSettings.Get("chkcascaderesults").ToLower() == "true")
                            {
                                strFilter = strFilter + " and NB1.[ItemId] in (select parentitemid from " + dbOwner + "[" + objQual + "NBrightBuy] where (typecode = 'CATCASCADE' or typecode = 'CATXREF') and XrefItemId = " + catseo + ") ";
                            }
                            else
                            {
                                strFilter = strFilter + " and NB1.[ItemId] in (select parentitemid from " + dbOwner + "[" + objQual + "NBrightBuy] where typecode = 'CATXREF' and XrefItemId = " + catseo + ") ";
                            }
                        }
                        // do special custom sort in each cateogry, this passes the catid to the SQL SPROC, whcih process the '{bycategoryproduct}' and orders by product/category seq.
                        if (_navigationdata.OrderBy.Contains("{bycategoryproduct}"))
                        {
                            _navigationdata.OrderBy = "{bycategoryproduct}" + _catid;
                        }
                    }
                    else
                    {
                        #region "use url to get category to display"

                        //check if we are display categories
                        // get category list data
                        if (_catname != "") // if catname passed in url, calculate what the catid is
                        {
                            objCat = ModCtrl.GetByGuidKey(PortalId, ModuleId, "CATEGORYLANG", _catname);
                            if (objCat == null)
                            {
                                // check it's not just a single language
                                objCat = ModCtrl.GetByGuidKey(PortalId, ModuleId, "CATEGORY", _catname);
                                if (objCat != null)
                                {
                                    _catid = objCat.ItemID.ToString("");
                                }
                            }
                            else
                            {
                                _catid = objCat.ParentItemId.ToString("");
                                if (!String.IsNullOrEmpty(objCat.GUIDKey) && Utils.IsNumeric(_catid) && objCat.Lang != Utils.GetCurrentCulture())
                                {
                                    // do a 301 redirect to correct url for the langauge (If the langauge is changed on the product list, we need to make sure we have the correct catref for the langauge)
                                    var catGrpCtrl = new GrpCatController(Utils.GetCurrentCulture());
                                    var activeCat  = catGrpCtrl.GetCategory(Convert.ToInt32(_catid));
                                    if (activeCat != null)
                                    {
                                        var redirecturl = "";
                                        if (Utils.IsNumeric(_eid))
                                        {
                                            var prdData = ProductUtils.GetProductData(Convert.ToInt32(_eid), Utils.GetCurrentCulture(), true, EntityTypeCode);
                                            redirecturl = NBrightBuyUtils.GetEntryUrl(PortalId, _eid, _modkey, prdData.SEOName, TabId.ToString(), "", activeCat.categoryrefGUIDKey);
                                        }
                                        else
                                        {
                                            redirecturl = catGrpCtrl.GetCategoryUrl(activeCat, TabId, Utils.GetCurrentCulture());
                                        }

                                        try
                                        {
                                            if (redirecturl != "")
                                            {
                                                Response.Redirect(redirecturl, false);
                                                Response.StatusCode = (int)System.Net.HttpStatusCode.MovedPermanently;
                                                Response.End();
                                            }
                                        }
                                        catch (Exception)
                                        {
                                            // catch err
                                        }
                                    }
                                }
                            }
                            // We have a category selected (in url), so overwrite categoryid navigationdata.
                            // This allows the return to the same category after a returning from a entry view.
                            if (Utils.IsNumeric(_catid))
                            {
                                _navigationdata.CategoryId = Convert.ToInt32(_catid);
                            }
                            catseo = _catid;
                            _navigationdata.ResetSearch();
                            strFilter = "";
                        }

                        if (Utils.IsNumeric(_catid))
                        {
                            if (ModSettings.Get("chkcascaderesults").ToLower() == "true")
                            {
                                strFilter = strFilter + " and NB1.[ItemId] in (select parentitemid from " + dbOwner + "[" + objQual + "NBrightBuy] where (typecode = 'CATCASCADE' or typecode = 'CATXREF') and XrefItemId = " + _catid + ") ";
                            }
                            else
                            {
                                strFilter = strFilter + " and NB1.[ItemId] in (select parentitemid from " + dbOwner + "[" + objQual + "NBrightBuy] where typecode = 'CATXREF' and XrefItemId = " + _catid + ") ";
                            }

                            if (Utils.IsNumeric(catseo))
                            {
                                var objSEOCat = ModCtrl.GetData(Convert.ToInt32(catseo), "CATEGORYLANG", Utils.GetCurrentCulture());
                                if (objSEOCat != null && _eid == "") // we may have a detail page and listonly module, in which can we need the product detail as page title
                                {
                                    //Page Title
                                    var seoname = objSEOCat.GetXmlProperty("genxml/lang/genxml/textbox/txtseoname");
                                    if (seoname == "")
                                    {
                                        seoname = objSEOCat.GetXmlProperty("genxml/lang/genxml/textbox/txtcategoryname");
                                    }

                                    var newBaseTitle = objSEOCat.GetXmlProperty("genxml/lang/genxml/textbox/txtseopagetitle");
                                    if (newBaseTitle == "")
                                    {
                                        newBaseTitle = objSEOCat.GetXmlProperty("genxml/lang/genxml/textbox/txtseoname");
                                    }
                                    if (newBaseTitle == "")
                                    {
                                        newBaseTitle = objSEOCat.GetXmlProperty("genxml/lang/genxml/textbox/txtcategoryname");
                                    }
                                    if (newBaseTitle != "")
                                    {
                                        BasePage.Title = newBaseTitle;
                                    }
                                    //Page KeyWords
                                    var newBaseKeyWords = objSEOCat.GetXmlProperty("genxml/lang/genxml/textbox/txtmetakeywords");
                                    if (newBaseKeyWords != "")
                                    {
                                        BasePage.KeyWords = newBaseKeyWords;
                                    }
                                    //Page Description
                                    var newBaseDescription = objSEOCat.GetXmlProperty("genxml/lang/genxml/textbox/txtmetadescription");
                                    if (newBaseDescription == "")
                                    {
                                        newBaseDescription = objSEOCat.GetXmlProperty("genxml/lang/genxml/textbox/txtcategorydesc");
                                    }
                                    if (newBaseDescription != "")
                                    {
                                        BasePage.Description = newBaseDescription;
                                    }


                                    // Remove canonical link for list.  The Open URL Rewriter (OUR) will create a url that is different to the default SEO url in NBS.
                                    // So to stop clashes it's been disable by default.  The requirment for a canonical link on a category list is more ticking the box than of being any SEO help (might even be causing confusion to Search Engines).
                                    // ** If your a SEO nutcases (or SEO companies pushing for it) then you can uncomment the code below, and you can implement the Open URL Rewriter and canonical link.

                                    //if (PortalSettings.HomeTabId == TabId)
                                    //    PageIncludes.IncludeCanonicalLink(Page, Globals.AddHTTP(PortalSettings.PortalAlias.HTTPAlias)); //home page always default of site.
                                    //else
                                    //{
                                    //    PageIncludes.IncludeCanonicalLink(Page, NBrightBuyUtils.GetListUrl(PortalId, TabId, objSEOCat.ItemID, seoname, Utils.GetCurrentCulture()));
                                    //    // Code required for OUR (if used, test to ensure it works correctly!!)
                                    //    //PageIncludes.IncludeCanonicalLink(Page, NBrightBuyUtils.GetListUrl(PortalId, TabId, objSEOCat.ItemID, "", Utils.GetCurrentCulture()));
                                    //}
                                }
                            }

                            // do special custom sort in each cateogry, this passes the catid to the SQL SPROC, whcih process the '{bycategoryproduct}' and orders by product/category seq.
                            if (_navigationdata.OrderBy.Contains("{bycategoryproduct}"))
                            {
                                _navigationdata.OrderBy = "{bycategoryproduct}" + _catid;
                            }
                        }
                        else
                        {
                            if (!_navigationdata.FilterMode)
                            {
                                _navigationdata.CategoryId = 0;                              // filter mode persist catid
                            }
                            if (_navigationdata.OrderBy.Contains("{bycategoryproduct}"))
                            {
                                _navigationdata.OrderBy = " Order by ModifiedDate DESC  ";
                            }
                        }

                        #endregion
                    }

                    // This allows the return to the same category after a returning from a entry view. + Gives support for current category in razor tokens
                    if (Utils.IsNumeric(_catid))
                    {
                        _navigationdata.CategoryId = Convert.ToInt32(_catid);
                    }

                    #endregion

                    #region "Apply provider product filter"

                    // Special filtering can be done, by using the ProductFilter interface.
                    var productfilterkey = "";
                    if (metaTokens.ContainsKey("providerfilterkey"))
                    {
                        productfilterkey = metaTokens["providerfilterkey"];
                    }
                    if (productfilterkey != "")
                    {
                        var provfilter = FilterInterface.Instance(productfilterkey);
                        if (provfilter != null)
                        {
                            strFilter = provfilter.GetFilter(strFilter, _navigationdata, ModSettings, Context);
                        }
                    }

                    #endregion

                    #region "itemlists (wishlist)"

                    // if we have a itemListName field then get the itemlist cookie.
                    if (ModSettings.Get("displaytype") == "2") // displaytype 2 = "selected list"
                    {
                        var cw = new ItemListData(PortalId, UserController.Instance.GetCurrentUserInfo().UserID);
                        if (cw.Exists && cw.ItemCount > 0)
                        {
                            strFilter = " and (";
                            foreach (var i in cw.GetItemList())
                            {
                                strFilter += " NB1.itemid = '" + i + "' or";
                            }
                            strFilter = strFilter.Substring(0, (strFilter.Length - 3)) + ") ";
                            // remove the last "or"
                        }
                        else
                        {
                            //no data in list so select false itemid to stop anything displaying
                            strFilter += " and (NB1.itemid = '-1') ";
                        }
                    }

                    #endregion

                    // insert page header text
                    NBrightBuyUtils.RazorIncludePageHeader(ModuleId, Page, Path.GetFileNameWithoutExtension(_templD) + "_head" + Path.GetExtension(_templD), _controlPath, ModSettings.ThemeFolder, ModSettings.Settings());

                    // save navigation data
                    _navigationdata.PageModuleId = Utils.RequestParam(Context, "pagemid");
                    _navigationdata.PageNumber   = Utils.RequestParam(Context, "page");
                    if (Utils.IsNumeric(_catid))
                    {
                        _navigationdata.PageName = NBrightBuyUtils.GetCurrentPageName(Convert.ToInt32(_catid));
                    }

                    // save the last active modulekey to a cookie, so it can be used by the "NBrightBuyUtils.GetReturnUrl" function
                    NBrightCore.common.Cookie.SetCookieValue(PortalId, "NBrigthBuyLastActive", "ModuleKey", ModuleKey, 1);


                    if (strFilter.Trim() == "")
                    {
                        // if at this point we have no filter, then assume we're using urlrewriter and a 404 url has been entered.
                        // rather than display all visible products in a list with no default.
                        // redirect to the product display function, so we can display a 404 and product not found.
                        RazorDisplayDataEntry(_eid);
                    }
                    else
                    {
                        strFilter += " and (NB3.Visible = 1) "; // get only visible products

                        var recordCount = ModCtrl.GetDataListCount(PortalId, ModuleId, EntityTypeCode, strFilter, EntityTypeCodeLang, Utils.GetCurrentCulture(), DebugMode);

                        _navigationdata.RecordCount = recordCount.ToString("");
                        _navigationdata.Save();

                        if (returnlimit > 0 && returnlimit < recordCount)
                        {
                            recordCount = returnlimit;
                        }

                        // **** check if we already have the template cached, if so no need for DB call or razor call ****
                        // get same cachekey used for DB return, and use for razor.
                        var razorcachekey = ModCtrl.GetDataListCacheKey(PortalId, ModuleId, EntityTypeCode, EntityTypeCodeLang, Utils.GetCurrentCulture(), strFilter, _navigationdata.OrderBy, DebugMode, "", returnlimit, pageNumber, pageSize, recordCount);
                        var cachekey      = "NBrightBuyRazorOutput" + _templD + "*" + razorcachekey + PortalId.ToString();
                        var strOut        = (String)NBrightBuyUtils.GetModCache(cachekey);
                        if (strOut == null || StoreSettings.Current.DebugMode)
                        {
                            var l = ModCtrl.GetDataList(PortalId, ModuleId, EntityTypeCode, EntityTypeCodeLang, Utils.GetCurrentCulture(), strFilter, _navigationdata.OrderBy, DebugMode, "", returnlimit, pageNumber, pageSize, recordCount);
                            strOut = NBrightBuyUtils.RazorTemplRenderList(_templD, ModuleId, razorcachekey, l, _controlPath, ModSettings.ThemeFolder, Utils.GetCurrentCulture(), ModSettings.Settings());
                        }

                        var lit = new Literal();
                        lit.Text = strOut;
                        phData.Controls.Add(lit);

                        if (_navigationdata.SingleSearchMode)
                        {
                            _navigationdata.ResetSearch();
                        }

                        if (pageSize > 0)
                        {
                            CtrlPaging.PageSize     = pageSize;
                            CtrlPaging.CurrentPage  = pageNumber;
                            CtrlPaging.TotalRecords = recordCount;
                            CtrlPaging.BindPageLinks();
                        }
                    }
                }
            }
        }
Ejemplo n.º 25
0
        override protected void OnInit(EventArgs e)
        {
            _eid           = Utils.RequestQueryStringParam(Context, "eid");
            _print         = Utils.RequestParam(Context, "print");
            _printtemplate = Utils.RequestParam(Context, "template");
            _controlPath   = ControlPath;

            EnablePaging = true;

            base.OnInit(e);

            if (ModSettings != null)
            {
                // check if we're using a typcode for the data.
                var modentitytypecode = ModSettings.Get("entitytypecode");
                if (modentitytypecode != "")
                {
                    EntityTypeCode     = modentitytypecode;
                    EntityTypeCodeLang = modentitytypecode + "LANG";
                }
                // check if we're using a provider controlpath for the templates.
                var providercontrolpath = ModSettings.Get("providercontrolpath");
                if (providercontrolpath != "")
                {
                    _controlPath = "/DesktopModules/NBright/" + providercontrolpath + "/";
                }
            }


            // if guidkey entered instead of eid, find it using the guid and assign to _eid
            _guidkey = Utils.RequestQueryStringParam(Context, "guidkey");
            if (_guidkey == "")
            {
                _guidkey = Utils.RequestQueryStringParam(Context, "ref");
            }

            Logging.Info($"ProductRazorView requested with: eid={_eid}, guidkey={_guidkey}.");

            if (_eid == "" && _guidkey != "")
            {
                var guidData = ModCtrl.GetByGuidKey(PortalId, -1, EntityTypeCode, _guidkey);
                if (guidData != null)
                {
                    _eid = guidData.ItemID.ToString("D");
                }
                else
                {
                    _eid = "0";
                }
            }

            // if we want to print we need to open the browser with a startup script, this points to a Printview.aspx. (Must go after the ModSettings has been init.)
            if (_print != "")
            {
                Page.ClientScript.RegisterStartupScript(this.GetType(), "printproduct", "window.open('" + StoreSettings.NBrightBuyPath() + "/PrintView.aspx?itemid=" + _eid + "&printcode=" + _print + "&template=" + _printtemplate + "&theme=" + ModSettings.Get("themefolder") + "','_blank');", true);
            }

            if (ModuleKey == "")  // if we don't have module setting jump out
            {
                var lit = new Literal();
                lit.Text = "NO MODULE SETTINGS";
                phData.Controls.Add(lit);
                return;
            }

            _navigationdata = new NavigationData(PortalId, ModuleKey);

            // Pass in a template specifying the token to create a friendly url for paging.
            // (NOTE: we need this in NBS becuase the edit product from list return url will copy the page number and hence paging will not work after editing if we don;t do this)
            CtrlPaging.HrefLinkTemplate = "[<tag type='valueof' databind='PreText' />][<tag type='if' databind='Text' testvalue='' display='{OFF}' />][<tag type='hrefpagelink' moduleid='" + ModuleId.ToString("") + "' />][<tag type='endif' />][<tag type='valueof' databind='PostText' />]";
            CtrlPaging.UseListDisplay   = true;
            try
            {
                _catid   = Utils.RequestQueryStringParam(Context, "catid");
                _catname = Utils.RequestQueryStringParam(Context, "catref");

                #region "set templates based on entry id (eid) from url"

                _ename        = Utils.RequestQueryStringParam(Context, "entry");
                _modkey       = Utils.RequestQueryStringParam(Context, "modkey");
                _pagemid      = Utils.RequestQueryStringParam(Context, "pagemid");
                _pagenum      = Utils.RequestQueryStringParam(Context, "page");
                _pagesize     = Utils.RequestQueryStringParam(Context, "pagesize");
                _orderbyindex = Utils.RequestQueryStringParam(Context, "orderby");

                // see if we need to display the entry page.
                if ((_modkey == ModuleKey | _modkey == "") && (_eid != "" | _ename != ""))
                {
                    _displayentrypage = true;
                }

                // if we have entry detail display, but no catd, get the default one.
                if (_displayentrypage && _catid == "" && Utils.IsNumeric(_eid))
                {
                    var prdData = ProductUtils.GetProductData(Convert.ToInt32(_eid), Utils.GetCurrentCulture(), true, EntityTypeCode);
                    var defcat  = prdData.GetDefaultCategory();
                    if (defcat != null)
                    {
                        _catid = defcat.categoryid.ToString("");
                    }
                }

                if (ModSettings.Get("listonly").ToLower() == "true")
                {
                    _displayentrypage = false;
                }

                // get template codes
                if (_displayentrypage)
                {
                    _templD = ModSettings.Get("razordetailtemplate");
                    if (_templD == "")
                    {
                        _templD = ModSettings.Get("txtdisplayentrybody");                // legacy name
                    }
                }
                else
                {
                    _templD = ModSettings.Get("razorlisttemplate");
                    if (_templD == "")
                    {
                        _templD = ModSettings.Get("txtdisplaybody");                // legacy name
                    }
                }

                #endregion
            }
            catch (Exception exc)
            {
                // remove any cookie which might store SQL in error.
                _navigationdata.Delete();
                DisplayProductError(exc.ToString());
            }
        }
Ejemplo n.º 26
0
        private void PageLoad()
        {
            var catid = 0;

            if (Utils.IsNumeric(_catid))
            {
                catid = Convert.ToInt32(_catid);
            }

            #region "Get default category into list for displaying header and footer templates on product (breadcrumb)"

            // if we have a product displaying, get the deault category for the category
            var obj = new GroupCategoryData();
            if (Utils.IsNumeric(_entryid))
            {
                if (catid == 0)
                {
                    catid = _catGrpCtrl.GetDefaultCatId(Convert.ToInt32(_entryid));
                }
            }
            else
            {
                if (catid != 0)
                {
                    obj = _catGrpCtrl.GetCategory(catid);
                }
            }
            var catl = new List <object> {
                obj
            };

            if (Utils.IsNumeric(catid) && ModSettings.Get("injectseo") == "True")
            {
                var eid       = Utils.RequestQueryStringParam(Context, "eid");
                var objSEOCat = ModCtrl.GetData(Convert.ToInt32(catid), "CATEGORYLANG", Utils.GetCurrentCulture());
                if (objSEOCat != null && eid == "")  // we may have a detail page and listonly module, in which can we need the product detail as page title
                {
                    //Page Title
                    var seoname = objSEOCat.GetXmlProperty("genxml/lang/genxml/textbox/txtseoname");
                    if (seoname == "")
                    {
                        seoname = objSEOCat.GetXmlProperty("genxml/lang/genxml/textbox/txtcategoryname");
                    }

                    var newBaseTitle = objSEOCat.GetXmlProperty("genxml/lang/genxml/textbox/txtseopagetitle");
                    if (newBaseTitle == "")
                    {
                        newBaseTitle = objSEOCat.GetXmlProperty("genxml/lang/genxml/textbox/txtseoname");
                    }
                    if (newBaseTitle == "")
                    {
                        newBaseTitle = objSEOCat.GetXmlProperty("genxml/lang/genxml/textbox/txtcategoryname");
                    }
                    if (newBaseTitle != "")
                    {
                        BasePage.Title = BasePage.Title + " > " + newBaseTitle;
                    }
                    //Page KeyWords
                    var newBaseKeyWords = objSEOCat.GetXmlProperty("genxml/lang/genxml/textbox/txtmetakeywords");
                    if (newBaseKeyWords != "")
                    {
                        BasePage.KeyWords = newBaseKeyWords;
                    }
                    //Page Description
                    var newBaseDescription = objSEOCat.GetXmlProperty("genxml/lang/genxml/textbox/txtmetadescription");
                    if (newBaseDescription == "")
                    {
                        newBaseDescription = objSEOCat.GetXmlProperty("genxml/lang/genxml/textbox/txtcategorydesc");
                    }
                    if (newBaseDescription != "")
                    {
                        BasePage.Description = newBaseDescription;
                    }
                }
            }


            #endregion

            #region "Data Repeater"


            if (_templD.Trim() != "")     // if we don;t have a template, don't do anything
            {
                var menutype = ModSettings.Get("ddlmenutype").ToLower();

                #region "Drill Down"

                if (menutype == "drilldown")
                {
                    var l = _catGrpCtrl.GetVisibleCategoriesWithUrl(catid, TabId);
                    if (l.Count == 0 && (ModSettings.Get("alwaysshow") == "True"))
                    {
                        // if we have no categories, it could be the end of branch or product view, so load the root menu
                        var catid2 = 0;
                        _catid = ModSettings.Get("defaultcatid");
                        if (Utils.IsNumeric(_catid))
                        {
                            catid2 = Convert.ToInt32(_catid);
                        }
                        l = _catGrpCtrl.GetVisibleCategoriesWithUrl(catid2, TabId);
                    }
                    rpData.DataSource = l;
                    rpData.DataBind();
                }

                #endregion

                #region "treeview"

                if (menutype == "treeview")
                {
                    var catidtree = 0;
                    if (Utils.IsNumeric(ModSettings.Get("defaultcatid")))
                    {
                        catidtree = Convert.ToInt32(ModSettings.Get("defaultcatid"));
                    }

                    var cachekey = "CatMenu*" + ModuleId.ToString("") + "*" + catid + "*" + catidtree.ToString() + "*" + Utils.GetCurrentCulture();
                    var strOut   = (String)NBrightBuyUtils.GetModCache(cachekey);
                    if (strOut == null)
                    {
                        rpData.Visible = false;
                        var catBuiler = new CatMenuBuilder(_templD, ModSettings, catid, DebugMode);
                        strOut = catBuiler.GetTreeCatList(50, catidtree, Convert.ToInt32(_tabid), ModSettings.Get("treeidentclass"), ModSettings.Get("treerootclass"));

                        // if debug , output the html used.
                        if (StoreSettings.Current.DebugModeFileOut)
                        {
                            Utils.SaveFile(PortalSettings.HomeDirectoryMapPath + "debug_treemenu.html", strOut);
                        }
                        NBrightBuyUtils.SetModCache(ModuleId, cachekey, strOut);
                    }
                    var l = new Literal {
                        Text = strOut
                    };
                    phData.Controls.Add(l);
                }

                #endregion

                #region "Accordian"

                if (menutype == "accordian")
                {
                }

                #endregion

                #region "megamenu"

                if (menutype == "megamenu")
                {
                }

                #endregion
            }

            // display header
            rpDataH.DataSource = catl;
            rpDataH.DataBind();

            // display footer
            rpDataF.DataSource = catl;
            rpDataF.DataBind();

            #endregion
        }