private void SaveAll()
 {
     foreach (RepeaterItem rtnItem in rpData.Items)
     {
         var isdirty = GenXmlFunctions.GetField(rtnItem, "isdirty");
         var itemid = GenXmlFunctions.GetField(rtnItem, "itemid");
         if (isdirty == "true" && Utils.IsNumeric(itemid))
         {
             var grpData = new GroupData(Convert.ToInt32(itemid), StoreSettings.Current.EditLanguage);
             if (grpData.Exists)
             {
                 grpData.Validate();
                 var grpname = GenXmlFunctions.GetField(rtnItem, "groupname");
                 var grpref = GenXmlFunctions.GetField(rtnItem, "groupref");
                 var grptype = GenXmlFunctions.GetField(rtnItem, "grouptype");
                 grpData.Name = grpname;
                 grpData.Ref = grpref;
                 grpData.Type = grptype;
                 grpData.Save();
             }
         }
     }
 }
        public static int ValidateStore()
        {
            // clear all cache to start.
            DataCache.ClearCache();

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

            // Validate Products
            var prodList = objCtrl.GetList(DotNetNuke.Entities.Portals.PortalSettings.Current.PortalId, -1, "PRD");
            foreach (var p in prodList)
            {
                var prodData = ProductUtils.GetProductData(p.ItemID, StoreSettings.Current.EditLanguage);
                errcount += prodData.Validate();
            }

            // Validate Categories
            var catList = objCtrl.GetList(DotNetNuke.Entities.Portals.PortalSettings.Current.PortalId, -1, "CATEGORY");
            foreach (var c in catList)
            {
                var catData = CategoryUtils.GetCategoryData(c.ItemID, StoreSettings.Current.EditLanguage);
                errcount += catData.Validate();
            }

            // Validate Groups
            var grpList = objCtrl.GetList(DotNetNuke.Entities.Portals.PortalSettings.Current.PortalId, -1, "GROUP");
            foreach (var c in grpList)
            {
                var grpData = new GroupData(c.ItemID, StoreSettings.Current.EditLanguage);
                errcount += grpData.Validate();
            }

            // reset catid from catref
            var l = objCtrl.GetDataList(PortalSettings.Current.PortalId, -1, "SETTINGS", "", Utils.GetCurrentCulture(), " and [XMLdata].value('(genxml/catref)[1]','nvarchar(max)') != ''","");
            foreach (var s in l)
            {
                var info = ModuleSettingsResetCatIdFromRef(s);
                objCtrl.Update(info);
            }

            return errcount;
        }