示例#1
0
        public string ProductAdminList(HttpContext context)
        {
            try
            {
                if (NBrightBuyUtils.CheckRights())
                {
                    var ajaxInfo = NBrightBuyUtils.GetAjaxInfo(context);

                    if (UserController.Instance.GetCurrentUserInfo().UserID <= 0)
                    {
                        return(null);
                    }

                    var editlang = ajaxInfo.GetXmlProperty("genxml/hidden/editlang");
                    if (editlang == "")
                    {
                        editlang = Utils.GetCurrentCulture();
                    }

                    NBrightBuyUtils.RemoveModCache(-2);

                    ajaxInfo.SetXmlProperty("genxml/hidden/razortemplate", "datalist.cshtml");

                    var strOut = "";

                    // select a specific entity data type for the product (used by plugins)
                    var entitytypecodelang = "PRDLANG";
                    var entitytypecode     = "PRD";

                    var filter      = ajaxInfo.GetXmlProperty("genxml/hidden/filter");
                    var orderby     = ajaxInfo.GetXmlProperty("genxml/hidden/orderby");
                    var returnLimit = ajaxInfo.GetXmlPropertyInt("genxml/hidden/returnlimit");
                    var pageNumber  = ajaxInfo.GetXmlPropertyInt("genxml/hidden/pagenumber");
                    var pageSize    = ajaxInfo.GetXmlPropertyInt("genxml/hidden/pagesize");
                    var cascade     = ajaxInfo.GetXmlPropertyBool("genxml/hidden/cascade");
                    var portalId    = PortalSettings.Current.PortalId;
                    if (ajaxInfo.GetXmlProperty("genxml/hidden/portalid") != "")
                    {
                        portalId = ajaxInfo.GetXmlPropertyInt("genxml/hidden/portalid");
                    }

                    var searchText     = ajaxInfo.GetXmlProperty("genxml/hidden/searchtext");
                    var searchCategory = ajaxInfo.GetXmlProperty("genxml/hidden/searchcategory");

                    if (searchText != "")
                    {
                        filter += " and (NB3.[ProductName] like '%" + searchText + "%' or NB3.[ProductRef] like '%" + searchText + "%' or NB3.[Summary] like '%" + searchText + "%' ) ";
                    }

                    if (Utils.IsNumeric(searchCategory))
                    {
                        if (orderby == "{bycategoryproduct}")
                        {
                            orderby += searchCategory;
                        }
                        var objQual = DotNetNuke.Data.DataProvider.Instance().ObjectQualifier;
                        var dbOwner = DotNetNuke.Data.DataProvider.Instance().DatabaseOwner;
                        if (!cascade)
                        {
                            filter += " and NB1.[ItemId] in (select parentitemid from " + dbOwner + "[" + objQual + "NBrightBuy] where typecode = 'CATXREF' and XrefItemId = " + searchCategory + ") ";
                        }
                        else
                        {
                            filter += " and NB1.[ItemId] in (select parentitemid from " + dbOwner + "[" + objQual + "NBrightBuy] where (typecode = 'CATXREF' and XrefItemId = " + searchCategory + ") or (typecode = 'CATCASCADE' and XrefItemId = " + searchCategory + ")) ";
                        }
                    }
                    else
                    {
                        if (orderby == "{bycategoryproduct}")
                        {
                            orderby = " order by NB3.productname ";
                        }
                    }

                    // logic for client list of products
                    if (NBrightBuyUtils.IsClientOnly())
                    {
                        filter += " and NB1.ItemId in (select ParentItemId from dbo.[NBrightBuy] as NBclient where NBclient.TypeCode = 'USERPRDXREF' and NBclient.UserId = " + UserController.Instance.GetCurrentUserInfo().UserID.ToString("") + ") ";
                    }

                    var recordCount = 0;
                    var objCtrl     = new NBrightBuyController();

                    if (pageNumber == 0)
                    {
                        pageNumber = 1;
                    }
                    if (pageSize == 0)
                    {
                        pageSize = 20;
                    }

                    // get only entity type required.  Do NOT use typecode, that is set by the filter.
                    recordCount = objCtrl.GetListCount(PortalSettings.Current.PortalId, -1, "PRD", filter, "", editlang);

                    // get selected entitytypecode.
                    var list = objCtrl.GetDataList(PortalSettings.Current.PortalId, -1, "PRD", "PRDLANG", editlang, filter, orderby, StoreSettings.Current.DebugMode, "", returnLimit, pageNumber, pageSize, recordCount);

                    return(RenderProductAdminList(list, ajaxInfo, recordCount));
                }
            }
            catch (Exception ex)
            {
                Logging.LogException(ex);
                return(ex.ToString());
            }
            return("");
        }
示例#2
0
        public static String ProductAdminList(Dictionary <string, string> settings, bool paging = true)
        {
            try
            {
                if (NBrightBuyUtils.CheckManagerRights())
                {
                    if (UserController.Instance.GetCurrentUserInfo().UserID <= 0)
                    {
                        return("");
                    }

                    var strOut = "";

                    if (!settings.ContainsKey("themefolder"))
                    {
                        settings.Add("themefolder", "");
                    }
                    if (!settings.ContainsKey("razortemplate"))
                    {
                        settings.Add("razortemplate", "");
                    }
                    if (!settings.ContainsKey("header"))
                    {
                        settings.Add("header", "");
                    }
                    if (!settings.ContainsKey("body"))
                    {
                        settings.Add("body", "");
                    }
                    if (!settings.ContainsKey("footer"))
                    {
                        settings.Add("footer", "");
                    }
                    if (!settings.ContainsKey("filter"))
                    {
                        settings.Add("filter", "");
                    }
                    if (!settings.ContainsKey("orderby"))
                    {
                        settings.Add("orderby", "");
                    }
                    if (!settings.ContainsKey("returnlimit"))
                    {
                        settings.Add("returnlimit", "0");
                    }
                    if (!settings.ContainsKey("pagenumber"))
                    {
                        settings.Add("pagenumber", "0");
                    }
                    if (!settings.ContainsKey("pagesize"))
                    {
                        settings.Add("pagesize", "0");
                    }
                    if (!settings.ContainsKey("searchtext"))
                    {
                        settings.Add("searchtext", "");
                    }
                    if (!settings.ContainsKey("searchcategory"))
                    {
                        settings.Add("searchcategory", "");
                    }
                    if (!settings.ContainsKey("cascade"))
                    {
                        settings.Add("cascade", "False");
                    }

                    if (!settings.ContainsKey("portalid"))
                    {
                        settings.Add("portalid", PortalSettings.Current.PortalId.ToString(""));                                    // aways make sure we have portalid in settings
                    }
                    // select a specific entity data type for the product (used by plugins)
                    if (!settings.ContainsKey("entitytypecode"))
                    {
                        settings.Add("entitytypecode", "PRD");
                    }
                    if (!settings.ContainsKey("entitytypecodelang"))
                    {
                        settings.Add("entitytypecodelang", "PRDLANG");
                    }
                    var entitytypecodelang = settings["entitytypecodelang"];
                    var entitytypecode     = settings["entitytypecode"];

                    var themeFolder   = settings["themefolder"];
                    var header        = settings["header"];
                    var body          = settings["body"];
                    var footer        = settings["footer"];
                    var filter        = settings["filter"];
                    var orderby       = settings["orderby"];
                    var returnLimit   = Convert.ToInt32(settings["returnlimit"]);
                    var pageNumber    = Convert.ToInt32(settings["pagenumber"]);
                    var pageSize      = Convert.ToInt32(settings["pagesize"]);
                    var cascade       = Convert.ToBoolean(settings["cascade"]);
                    var razortemplate = settings["razortemplate"];
                    var portalId      = Convert.ToInt32(settings["portalid"]);

                    var searchText     = settings["searchtext"];
                    var searchCategory = settings["searchcategory"];

                    if (searchText != "")
                    {
                        filter += " and (NB3.[ProductName] like '%" + searchText + "%' or NB3.[ProductRef] like '%" + searchText + "%' or NB3.[Summary] like '%" + searchText + "%' ) ";
                    }

                    if (Utils.IsNumeric(searchCategory))
                    {
                        if (orderby == "{bycategoryproduct}")
                        {
                            orderby += searchCategory;
                        }
                        var objQual = DotNetNuke.Data.DataProvider.Instance().ObjectQualifier;
                        var dbOwner = DotNetNuke.Data.DataProvider.Instance().DatabaseOwner;
                        if (!cascade)
                        {
                            filter += " and NB1.[ItemId] in (select parentitemid from " + dbOwner + "[" + objQual + "NBrightBuy] where typecode = 'CATXREF' and XrefItemId = " + searchCategory + ") ";
                        }
                        else
                        {
                            filter += " and NB1.[ItemId] in (select parentitemid from " + dbOwner + "[" + objQual + "NBrightBuy] where (typecode = 'CATXREF' and XrefItemId = " + searchCategory + ") or (typecode = 'CATCASCADE' and XrefItemId = " + searchCategory + ")) ";
                        }
                    }
                    else
                    {
                        if (orderby == "{bycategoryproduct}")
                        {
                            orderby = " order by NB3.productname ";
                        }
                    }

                    // logic for client list of products
                    if (NBrightBuyUtils.IsClientOnly())
                    {
                        filter += " and NB1.ItemId in (select ParentItemId from dbo.[NBrightBuy] as NBclient where NBclient.TypeCode = 'USERPRDXREF' and NBclient.UserId = " + UserController.Instance.GetCurrentUserInfo().UserID.ToString("") + ") ";
                    }

                    var recordCount = 0;

                    if (themeFolder == "")
                    {
                        themeFolder = StoreSettings.Current.ThemeFolder;
                        if (settings.ContainsKey("themefolder"))
                        {
                            themeFolder = settings["themefolder"];
                        }
                    }


                    var objCtrl = new NBrightBuyController();

                    if (paging) // get record count for paging
                    {
                        if (pageNumber == 0)
                        {
                            pageNumber = 1;
                        }
                        if (pageSize == 0)
                        {
                            pageSize = 20;
                        }

                        // get only entity type required
                        recordCount = objCtrl.GetListCount(PortalSettings.Current.PortalId, -1, entitytypecode, filter, entitytypecodelang, Utils.GetCurrentCulture());
                    }

                    // get selected entitytypecode.
                    var list = objCtrl.GetDataList(PortalSettings.Current.PortalId, -1, entitytypecode, entitytypecodelang, Utils.GetCurrentCulture(), filter, orderby, StoreSettings.Current.DebugMode, "", returnLimit, pageNumber, pageSize, recordCount);

                    var passSettings = settings;
                    foreach (var s in StoreSettings.Current.Settings()) // copy store setting, otherwise we get a byRef assignement
                    {
                        if (passSettings.ContainsKey(s.Key))
                        {
                            passSettings[s.Key] = s.Value;
                        }
                        else
                        {
                            passSettings.Add(s.Key, s.Value);
                        }
                    }

                    strOut = NBrightBuyUtils.RazorTemplRenderList(razortemplate, 0, "", list, "/DesktopModules/NBright/NBrightBuy", themeFolder, Utils.GetCurrentCulture(), passSettings);

                    // add paging if needed
                    if (paging && (recordCount > pageSize))
                    {
                        var pg = new NBrightCore.controls.PagingCtrl();
                        strOut += pg.RenderPager(recordCount, pageSize, pageNumber);
                    }

                    return(strOut);
                }
                return("");
            }
            catch (Exception ex)
            {
                return(ex.ToString());
            }
        }