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(""); }
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()); } }