示例#1
0
        protected void CtrlItemCommand(object source, RepeaterCommandEventArgs e)
        {
            var cArg  = e.CommandArgument.ToString();
            var param = new string[3];

            var navigationData = new NavigationData(PortalId, "CategoryAdmin");

            switch (e.CommandName.ToLower())
            {
            case "entrydetail":
                SaveAll();
                param[1] = "eid=" + cArg;
                param[2] = "catid=" + _openid;
                Response.Redirect(NBrightBuyUtils.AdminUrl(TabId, param), true);
                break;

            case "return":
                param[1] = "";
                param[2] = "catid=" + _openid;
                Response.Redirect(NBrightBuyUtils.AdminUrl(TabId, param), true);
                break;

            case "search":
                var strXml = GenXmlFunctions.GetGenXml(rpSearch, "", "");
                navigationData.XmlData = strXml;
                if (StoreSettings.Current.DebugModeFileOut)
                {
                    strXml = "<root><sql><![CDATA[" + navigationData.Criteria + "]]></sql>" + strXml + "</root>";
                    var xmlDoc = new System.Xml.XmlDocument();
                    xmlDoc.LoadXml(strXml);
                    xmlDoc.Save(PortalSettings.HomeDirectoryMapPath + "debug_search.xml");
                }
                navigationData.Save();
                Response.Redirect(NBrightBuyUtils.AdminUrl(TabId, param), true);
                break;

            case "resetsearch":
                // clear cookie info
                navigationData.Delete();
                param[2] = "catid=0";
                Response.Redirect(NBrightBuyUtils.AdminUrl(TabId, param), true);
                break;

            case "addnew":
                var strXml2 = GenXmlFunctions.GetGenXml(rpSearch, "", "");
                navigationData.XmlData = strXml2;
                navigationData.Save();
                var categoryData = CategoryUtils.GetCategoryData(-1, EditLanguage);
                if (!String.IsNullOrEmpty(Edittype) && Edittype.ToLower() == "group")
                {
                    categoryData.GroupType = GenXmlFunctions.GetGenXmlValue(navigationData.XmlData, "genxml/dropdownlist/groupsel");
                    if (categoryData.GroupType == "")
                    {
                        categoryData.GroupType = "cat";
                    }
                    var grpCtrl = new GrpCatController(Utils.GetCurrentCulture());
                    var grp     = grpCtrl.GetGrpCategoryByRef(categoryData.GroupType);
                    if (grp != null)
                    {
                        categoryData.DataRecord.SetXmlProperty("genxml/dropdownlist/ddlparentcatid", grp.categoryid.ToString(""));
                    }
                    categoryData.DataRecord.SetXmlProperty("genxml/checkbox/chkishidden", "False");     // don't hide property groups by default
                }
                categoryData.ParentItemId = _openid;
                categoryData.Save();
                NBrightBuyUtils.RemoveModCachePortalWide(PortalId);

                param[2] = "catid=" + _openid;
                Response.Redirect(NBrightBuyUtils.AdminUrl(TabId, param), true);
                break;

            case "delete":
                if (Utils.IsNumeric(cArg))
                {
                    var catid = Convert.ToInt32(cArg);
                    if (catid > 0)
                    {
                        var delCatData = CategoryUtils.GetCategoryData(catid, EditLanguage);
                        if (delCatData.Exists && delCatData.GetDirectChildren().Count == 0)     // only delete end leaf
                        {
                            var productidlist = new ArrayList();
                            foreach (var dc in delCatData.GetDirectArticles())
                            {
                                productidlist.Add(dc.ParentItemId);
                            }

                            var parentCatList = new List <CategoryData>();
                            var loopCat       = CategoryUtils.GetCategoryData(catid, EditLanguage);
                            while (loopCat.Exists && loopCat.ParentItemId > 0)
                            {
                                loopCat = CategoryUtils.GetCategoryData(loopCat.ParentItemId, EditLanguage);
                                parentCatList.Add(loopCat);
                            }

                            foreach (var pCat in parentCatList)
                            {
                                foreach (var prodxref in pCat.GetCascadeArticles())
                                {
                                    if (productidlist.Contains(prodxref.ParentItemId))
                                    {
                                        // delete CATCASCADE record
                                        if (prodxref.TypeCode == "CATCASCADE")     // just check we have correct record. (stop nasty surprises)
                                        {
                                            ModCtrl.Delete(prodxref.ItemID);
                                        }
                                    }
                                }
                            }

                            foreach (var dc in delCatData.GetDirectArticles())
                            {
                                // delete CATXREF record
                                if (dc.TypeCode == "CATXREF")     // just check we have correct record. (stop nasty surprises)
                                {
                                    ModCtrl.Delete(dc.ItemID);
                                }
                            }
                            // delete CATEGORY record (constrants remove LANG records.)
                            ModCtrl.Delete(catid);
                        }
                        else
                        {
                            NBrightBuyUtils.SetNotfiyMessage(ModuleId, "onlyleafcat", NotifyCode.fail);
                        }
                    }
                }
                param[2] = "catid=" + _openid;
                Response.Redirect(NBrightBuyUtils.AdminUrl(TabId, param), true);
                break;

            case "saveall":
                SaveAll();
                NBrightBuyUtils.RemoveModCachePortalWide(PortalId);     //clear any cache
                param[2] = "catid=" + _openid;
                Response.Redirect(NBrightBuyUtils.AdminUrl(TabId, param), true);
                break;

            case "move":
                SaveAll();
                if (Utils.IsNumeric(cArg))
                {
                    MoveRecord(Convert.ToInt32(cArg));
                }
                param[2] = "catid=" + _openid;
                Response.Redirect(NBrightBuyUtils.AdminUrl(TabId, param), true);
                break;

            case "open":
                param[1] = "catid=" + cArg;
                Response.Redirect(NBrightBuyUtils.AdminUrl(TabId, param), true);
                break;

            case "close":
                var catData = CategoryUtils.GetCategoryData(_openid, EditLanguage);
                if (catData.DataRecord == null)
                {
                    param[1] = "catid=0";
                }
                else
                {
                    param[1] = "catid=" + catData.DataRecord.ParentItemId.ToString("");
                }
                Response.Redirect(NBrightBuyUtils.AdminUrl(TabId, param), true);
                break;

            case "save":
                UpdateRecord();
                param[1] = "eid=" + cArg;
                param[2] = "catid=" + _openid;
                Response.Redirect(NBrightBuyUtils.AdminUrl(TabId, param), true);
                break;

            case "saveexit":
                UpdateRecord();
                param[2] = "catid=" + _openid;
                Response.Redirect(NBrightBuyUtils.AdminUrl(TabId, param), true);
                break;
            }
        }