/// <summary>
 /// Add ne Exclude Word
 /// </summary>
 /// <param name="addWord">
 /// The add Word.
 /// </param>
 /// <returns>
 /// The New Word ID
 /// </returns>
 public static int TagCloudExcludeWordAdd(ExcludeWord addWord)
 {
     return
         (Convert.ToInt32(
              DataProvider.Instance().ExecuteScalar(
                  "TagCloudExcludeWordAdd", addWord.Word, addWord.ExcludeWordType, addWord.ModuleID, addWord.WordID)));
 }
 /// <summary>
 /// The tag cloud items add.
 /// </summary>
 /// <param name="objTag">
 /// The obj tag.
 /// </param>
 /// <returns>
 /// Returns the Tag ID of the new Tag
 /// </returns>
 public static int TagCloudItemsAdd(CustomTags objTag)
 {
     return
         (Convert.ToInt32(
              DataProvider.Instance().ExecuteScalar(
                  "TagCloudItemsAdd", objTag.iTagId, objTag.iWeight, objTag.sTag, objTag.iModulId, objTag.sUrl)));
 }
        /// <summary>
        /// Get the Occurrence Count for the selected Words Id
        /// </summary>
        /// <param name="searchWordsId">the Id of the Word</param>
        /// <returns>
        /// The Count of Occurrences
        /// </returns>
        public static int TagCloudSearchWordsOccur(int searchWordsId)
        {
            using (IDataReader dr = DataProvider.Instance().ExecuteReader("TagCloud_SearchWords", searchWordsId))
            {
                while (dr.Read())
                {
                    searchWordsId = Convert.ToInt32(dr["Occurrences"]);
                }
            }

            return(searchWordsId);
        }
        /// <summary>
        /// Get Exclude Word by moduleId and wordId
        /// </summary>
        /// <param name="moduleId">
        /// The module id.
        /// </param>
        /// <param name="wordId">
        /// The word id.
        /// </param>
        /// <returns>
        /// Returns a specific Exclude Word
        /// </returns>
        public static ExcludeWord TagCloudExcludeWordsGetWord(int moduleId, int wordId)
        {
            ExcludeWord word = null;

            using (IDataReader dr = DataProvider.Instance().ExecuteReader("TagCloudExcludeWordsGetWord", moduleId, wordId))
            {
                while (dr.Read())
                {
                    word = new ExcludeWord
                    {
                        Word            = Convert.ToString(dr["Word"]),
                        ExcludeWordType =
                            (ExcludeType)Enum.Parse(typeof(ExcludeType), Convert.ToString(dr["ExcludeWordType"])),
                        WordID   = wordId,
                        ModuleID = moduleId
                    };
                }
            }

            return(word);
        }
        /// <summary>
        ///  Get All Locales of the Tag by TagID and ModuleId
        /// </summary>
        /// <param name="iModulId">
        ///  Module Id that is uses
        /// </param>
        /// <param name="iTagId">
        ///  the Tag id
        /// </param>
        /// <returns>
        /// All Locales of the Tag
        /// </returns>
        public static List <Locales> TagCloudItemsGetByLocale(int iModulId, int iTagId)
        {
            List <Locales> localesList = new List <Locales>();

            using (IDataReader dr = DataProvider.Instance().ExecuteReader("TagCloudItemsGetByLocale", iModulId, iTagId))
            {
                while (dr.Read())
                {
                    Locales locales = new Locales
                    {
                        Locale = Convert.ToString(dr["Locale"]),
                        TagMl  = Convert.ToString(dr["Tag"]),
                        UrlMl  = Convert.ToString(dr["TagUrl"])
                    };

                    localesList.Add(locales);
                }
            }

            return(localesList);
        }
        /// <summary>
        /// The tag cloud items get by module.
        /// </summary>
        /// <param name="iModulId">
        /// The module id.
        /// </param>
        /// <returns>
        /// TagCloud Item List
        /// </returns>
        public static List <CustomTags> TagCloudItemsGetByModule(int iModulId)
        {
            List <CustomTags> tagsList = new List <CustomTags>();

            using (IDataReader dr = DataProvider.Instance().ExecuteReader("TagCloudItemsGetByModule", iModulId))
            {
                while (dr.Read())
                {
                    CustomTags tag = new CustomTags
                    {
                        iTagId  = Convert.ToInt32(dr["TagID"]),
                        iWeight = Convert.ToInt32(dr["Weight"]),
                        sTag    = Convert.ToString(dr["Tag"]),
                        sUrl    = Convert.ToString(dr["TagUrl"])
                    };

                    tagsList.Add(tag);
                }
            }

            return(tagsList);
        }
        /// <summary>
        /// Get All Exclude Words by Module
        /// </summary>
        /// <param name="moduleId">
        /// The module id.
        /// </param>
        /// <returns>
        /// List with Exclude Words
        /// </returns>
        public static List <ExcludeWord> TagCloudExcludeWordsGetByModule(int moduleId)
        {
            var wordList = new List <ExcludeWord>();

            using (IDataReader dr = DataProvider.Instance().ExecuteReader("TagCloudExcludeWordsGetByModule", moduleId))
            {
                while (dr.Read())
                {
                    var word = new ExcludeWord
                    {
                        Word            = Convert.ToString(dr["Word"]),
                        ExcludeWordType =
                            (ExcludeType)Enum.Parse(typeof(ExcludeType), Convert.ToString(dr["ExcludeWordType"])),
                        WordID   = Convert.ToInt32(dr["WordID"]),
                        ModuleID = moduleId
                    };

                    wordList.Add(word);
                }
            }

            return(wordList);
        }
Example #8
0
        /// <summary>Adds the logs to the database.</summary>
        /// <param name="jobId">The ID of the job to log.</param>
        /// <param name="completeLog">A collection of log items.</param>
        public void AddLogsToDatabase(int jobId, ICollection <LogItem> completeLog)
        {
            if (completeLog == null || completeLog.Count == 0)
            {
                return;
            }

            using (var table = new DataTable("ExportImportJobLogs"))
            {
                // must create the columns from scratch with each iteration
                table.Columns.AddRange(DatasetColumns.Select(
                                           column => new DataColumn(column.Item1, column.Item2)).ToArray());

                // batch specific amount of record each time
                const int batchSize = 500;
                var       toSkip    = 0;
                while (toSkip < completeLog.Count)
                {
                    foreach (var item in completeLog.Skip(toSkip).Take(batchSize))
                    {
                        var row = table.NewRow();
                        row["JobId"]         = jobId;
                        row["Name"]          = item.Name.TrimToLength(Constants.LogColumnLength);
                        row["Value"]         = item.Value.TrimToLength(Constants.LogColumnLength);
                        row["Level"]         = (int)item.ReportLevel;
                        row["CreatedOnDate"] = item.CreatedOnDate;
                        table.Rows.Add(row);
                    }

                    PlatformDataProvider.Instance().BulkInsert("ExportImportJobLogs_AddBulk", "@DataTable", table);
                    toSkip += batchSize;
                    table.Rows.Clear();
                }
            }

            completeLog.Clear();
        }
 /// <summary>
 /// The tag cloud items delete ml.
 /// </summary>
 /// <param name="iTagId">
 /// The i tag id.
 /// </param>
 /// <param name="iModulId">
 /// The i modul id.
 /// </param>
 /// <param name="sLocale">
 /// The s locale.
 /// </param>
 public static void TagCloudItemsDeleteMl(int iTagId, int iModulId, string sLocale)
 {
     DataProvider.Instance().ExecuteNonQuery("TagCloudItemsDeleteMl", iTagId, iModulId, sLocale);
 }
 /// <summary>
 /// Delete the Exclude Word
 /// </summary>
 /// <param name="moduleId">
 /// The module id.
 /// </param>
 /// <param name="wordId">
 /// The word id.
 /// </param>
 public static void TagCloudExcludeWordDelete(int moduleId, int wordId)
 {
     DataProvider.Instance().ExecuteNonQuery("TagCloudExcludeWordDelete", moduleId, wordId);
 }
 /// <summary>
 /// Update the Exclude Word
 /// </summary>
 /// <param name="updateWord">
 /// The update Word.
 /// </param>
 public static void TagCloudExcludeWordUpdate(ExcludeWord updateWord)
 {
     DataProvider.Instance().ExecuteNonQuery(
         "TagCloudExcludeWordUpdate", updateWord.Word, updateWord.ExcludeWordType, updateWord.ModuleID, updateWord.WordID);
 }
        /// <summary>
        /// Get The Tags From the Database
        /// </summary>
        /// <param name="itemCount">The Count of Tags that should be imported</param>
        /// <param name="portalID">The portal ID.</param>
        /// <returns>
        /// The Tag List
        /// </returns>
        public static List <TagWords> GetTagWords(int itemCount, int portalID)
        {
            var moduleBase = new PortalModuleBase();

            var tagsWordList = new List <TagWords>();

            var wordCount = 0;

            var drWords = DataProvider.Instance().ExecuteReader("TagCloud_GetSearchWords", portalID);

            try
            {
                while (drWords.Read())
                {
                    if (wordCount >= itemCount)
                    {
                        break;
                    }

                    var item = new TagWords
                    {
                        Word    = Convert.ToString(drWords["Word"]),
                        WordsId = Convert.ToInt32(drWords["SearchWordsID"])
                    };

                    tagsWordList.Add(item);

                    wordCount++;
                }
            }
            catch (Exception exc)
            {
                Exceptions.ProcessModuleLoadException(moduleBase, exc);
            }
            finally
            {
                drWords.Close();
                drWords.Dispose();
            }

            /*
             * IDataReader drWords = DataProvider.Instance().GetSearchWords();
             *
             * int iCount = 0;
             *
             * try
             * {
             *  while (drWords.Read())
             *  {
             *      if (iCount >= itemCount)
             *      {
             *          break;
             *      }
             *
             *      TagWords item = new TagWords
             *          {
             *              Word = Convert.ToString(drWords["Word"]),
             *              WordsId = Convert.ToInt32(drWords["SearchWordsID"])
             *          };
             *
             *      tagsWordList.Add(item);
             *
             *      iCount++;
             *  }
             * }
             * catch (Exception exc)
             * {
             *  Exceptions.ProcessModuleLoadException(moduleBase, exc);
             * }
             * finally
             * {
             *  drWords.Close();
             *  drWords.Dispose();
             * }
             */
            return(tagsWordList);
        }
 /// <summary>
 /// The tag cloud items update.
 /// </summary>
 /// <param name="objTag">
 /// The obj tag.
 /// </param>
 public static void TagCloudItemsUpdate(CustomTags objTag)
 {
     DataProvider.Instance().ExecuteNonQuery(
         "TagCloudItemsUpdate", objTag.iTagId, objTag.iWeight, objTag.sTag, objTag.iModulId, objTag.sUrl);
 }
Example #14
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);
        }
 /// <summary>
 /// The tag cloud items delete.
 /// </summary>
 /// <param name="iTagId">
 /// The i tag id.
 /// </param>
 /// <param name="iModulId">
 /// The i modul id.
 /// </param>
 public static void TagCloudItemsDelete(int iTagId, int iModulId)
 {
     DataProvider.Instance().ExecuteNonQuery("TagCloudItemsDelete", iTagId, iModulId);
 }
 /// <summary>
 /// The tag cloud items add ml.
 /// </summary>
 /// <param name="iTagId">
 /// The i tag id.
 /// </param>
 /// <param name="sLocale">
 /// The s locale.
 /// </param>
 /// <param name="sTag">
 /// The s tag.
 /// </param>
 /// <param name="iModuleId">
 /// The i module id.
 /// </param>
 /// <param name="sTagUrl">
 /// The s tag url.
 /// </param>
 public static void TagCloudItemsAddMl(int iTagId, string sLocale, string sTag, int iModuleId, string sTagUrl)
 {
     DataProvider.Instance().ExecuteScalar("TagCloudItemsAddMl", iTagId, sLocale, sTag, iModuleId, sTagUrl);
 }
        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();
                        }
                    }
                }
            }
        }