public static bool Delete(int catId)
 {
     CleanCacheCategory();
     using (Portal.Core.DAL.MainDB db = new Portal.Core.DAL.MainDB())
         db.StoredProcedures.Category_Delete(catId);
     return(true);
 }
        public static ArrayList getCatInfo(int _catid)
        {
            Portal.Core.DAL.CategoryRow objrow;
            ArrayList objresult = new ArrayList();

            using (Portal.Core.DAL.MainDB objDb = new Portal.Core.DAL.MainDB())
            {
                objrow = objDb.CategoryCollection.GetByPrimaryKey(_catid);
            }
            if (objrow != null)
            {
                objresult.Add(objrow.Cat_Name);
                objresult.Add(objrow.Cat_Description);
                objresult.Add(objrow.Cat_DisplayURL);
                objresult.Add(objrow.Cat_ParentID);
                if (!objrow.IsCat_isColumnNull)
                {
                    objresult.Add(objrow.Cat_isColumn);
                }
                if (!objrow.IsCat_isHiddenNull)
                {
                    objresult.Add(objrow.Cat_isHidden);
                }
                objresult.Add(objrow.Cat_Icon);
                objresult.Add(objrow.Cat_ViewNum);

                //SonPC
                objresult.Add(objrow.EditionType_ID);
                //SonPC
            }
            return(objresult);
        }
        public static bool UpdateCategoryRow(Portal.Core.DAL.CategoryRow row)
        {
            CleanCacheCategory();

            using (Portal.Core.DAL.MainDB objDb = new Portal.Core.DAL.MainDB())
            {
                objDb.CategoryCollection.Update(row);
            }

            #region Cập nhập vào bảng Category ở database User
            Portal.User.Db.CategoryRow objCateUserRow = new Portal.User.Db.CategoryRow();
            using (Portal.User.Db.MainDB objDb = new Portal.User.Db.MainDB())
            {
                objCateUserRow              = objDb.CategoryCollection.GetByPrimaryKey(row.Cat_ID);
                objCateUserRow.Cat_Name     = row.Cat_Name;
                objCateUserRow.Cat_ParentID = row.Cat_ParentID;
                objCateUserRow.Cat_Order    = row.Cat_Order;
                objCateUserRow.Channel_ID   = Portal.API.Config.CurrentChannel;
                objDb.CategoryCollection.Update(objCateUserRow);
            }
            #endregion


            return(true);
        }
 //SonPC 13/02/2008
 public static int GetCatParent(Int32 Cate_ID)
 {
     Portal.Core.DAL.CategoryRow objrow;
     using (Portal.Core.DAL.MainDB objDb = new Portal.Core.DAL.MainDB())
     {
         objrow = objDb.CategoryCollection.GetByPrimaryKey(Cate_ID);
         if (objrow.Cat_ParentID == 0)
         {
             return(Cate_ID);
         }
         else
         {
             return(GetCatParent(objrow.Cat_ParentID));
         }
     }
 }
        public static Portal.Core.DAL.CategoryRow getCatInfoAsCategoryRow(int _catid)
        {
            Portal.Core.DAL.CategoryRow objrow;
            ArrayList objresult = new ArrayList();

            using (Portal.Core.DAL.MainDB objDb = new Portal.Core.DAL.MainDB())
            {
                objrow = objDb.CategoryCollection.GetByPrimaryKey(_catid);
            }
            if (objrow != null)
            {
                return(objrow);
            }

            objrow = new Portal.Core.DAL.CategoryRow();
            return(objrow);
        }
        public static Portal.Core.DAL.CategoryRow CreateCat2(string name, int order, string description, string displayURL, int parentCatId, int editionId, string icon, bool isColumn, bool isHidden, string tabCloneRef)
        {
            CleanCacheCategory();
            #region Cập nhật vào bảng Category ở database dữ liệu chính [Portal.Core.DAL.CategoryRow]
            Portal.Core.DAL.CategoryRow objrow = new Portal.Core.DAL.CategoryRow();
            objrow.Cat_Name        = name;
            objrow.Cat_Description = description;
            objrow.Cat_DisplayURL  = displayURL;
            objrow.Cat_ParentID    = parentCatId;
            objrow.EditionType_ID  = editionId;
            objrow.Cat_Icon        = icon;
            objrow.Cat_Order       = order;
            objrow.Cat_isColumn    = isColumn;
            objrow.Cat_isHidden    = isHidden;
            Portal.Core.DAL.MainDB db = new Portal.Core.DAL.MainDB();
            db.CategoryCollection.Insert(objrow);

            #endregion

            #region Cập nhập vào bảng Category ở database User [Portal.User.Db.CategoryRow]
            Portal.User.Db.CategoryRow objCateUserRow = new Portal.User.Db.CategoryRow();
            objCateUserRow.Cat_ID       = objrow.Cat_ID;
            objCateUserRow.Cat_Name     = objrow.Cat_Name;
            objCateUserRow.Cat_ParentID = objrow.Cat_ParentID;
            objCateUserRow.Cat_Order    = objrow.Cat_Order;
            objCateUserRow.Channel_ID   = Portal.API.Config.CurrentChannel;
            using (Portal.User.Db.MainDB userDB = new Portal.User.Db.MainDB())
            {
                userDB.CategoryCollection.Insert(objCateUserRow);
            }
            #endregion

            //#region Cập nhật file Portal.config
            //string parentTabRef = string.Empty;
            //if (parentCatId == 0)
            //    parentTabRef = db.EditionTypeCollection.GetByPrimaryKey(editionId).EditionDisplayURL;
            //else
            //    CategoryHelper.GetTabReferenceByCatId(parentCatId);

            //string newTabRef = parentTabRef + "." + name;
            //Gentabhelper.AddNewTab(newTabRef, parentTabRef, name, tabCloneRef);
            //#endregion

            return(objrow);
        }
        private static string LoadRootCategoryByPermission(DropDownList cb_Cate, ListBox lb_Cate, CheckBoxList cbl_Cate)
        {
            string       strResult    = "";
            MainSecurity objSec       = new MainSecurity();
            Role         objrole      = objSec.GetRole(HttpContext.Current.User.Identity.Name);
            DataTable    objParentCat = objSec.getParentCategoryAssigned(HttpContext.Current.User.Identity.Name, Portal.API.Config.CurrentChannel);

            if (cb_Cate != null)
            {
                cb_Cate.Items.Add(new ListItem("-----Chọn tất cả -----", "0"));
            }
            if (lb_Cate != null)
            {
                lb_Cate.Items.Add(new ListItem("-----Chọn chuyên mục khác -----", "0"));
            }

            DataTable childRows       = new DataTable();
            DataTable childLevel3Rows = new DataTable();

            using (Portal.Core.DAL.MainDB objDB = new Portal.Core.DAL.MainDB())
            {
                foreach (DataRow objrow in objParentCat.Rows)
                {
                    childRows  = objDB.FrontEndStoreProcedure.Category_GetListByWhere(" Where Cat_ParentID=" + objrow["Cat_ID"] + "", " Order By Cat_Order ");
                    strResult += objrow["Cat_ID"] + ",";

                    if (cb_Cate != null)
                    {
                        cb_Cate.Items.Add(new ListItem("" + objrow["Cat_Name"].ToString().ToUpper() + "", objrow["Cat_ID"] + ""));
                    }
                    if (lb_Cate != null)
                    {
                        lb_Cate.Items.Add(new ListItem("" + objrow["Cat_Name"].ToString().ToUpper() + "", objrow["Cat_ID"] + ""));
                    }
                    if (cbl_Cate != null)
                    {
                        cbl_Cate.Items.Add(new ListItem("" + objrow["Cat_Name"].ToString().ToUpper() + "", objrow["Cat_ID"] + ""));
                    }
                }
            }

            return(strResult);
        }
        public static string GetChildCatIdByCatParentId(int cat_Parent_Id)
        {
            DataTable dt;
            string    strCatId = "";

            using (Portal.Core.DAL.MainDB objDb = new Portal.Core.DAL.MainDB())
            {
                dt = objDb.CategoryCollection.GetAsDataTable(" Cat_ParentID = " + cat_Parent_Id.ToString(), "");
            }

            foreach (DataRow dr in dt.Rows)
            {
                strCatId += "," + dr["Cat_ID"];
            }
            if (strCatId.Trim() != "")
            {
                strCatId = strCatId.Substring(1);
            }

            return(strCatId);
        }
        private static string LoadRootCat(DropDownList cb_Cate, ListBox lb_Cate, CheckBoxList cbl_Cate)
        {
            string strResult = "";

            using (Portal.Core.DAL.MainDB objDB = new Portal.Core.DAL.MainDB())
            {
                DataTable parentRows = objDB.FrontEndStoreProcedure.Category_GetListByWhere(" Where (Cat_ParentID =0 OR Cat_ParentID is null)  ", " Order By Cat_Order ");

                if (cb_Cate != null)
                {
                    cb_Cate.Items.Add(new ListItem("-----Chọn tất cả -----", "0"));
                }
                if (lb_Cate != null)
                {
                    lb_Cate.Items.Add(new ListItem("-----Chọn chuyên mục khác -----", "0"));
                }

                DataTable childRows;
                DataTable childLevel3Rows;
                foreach (DataRow aRow in parentRows.Rows)
                {
                    if (cb_Cate != null)
                    {
                        cb_Cate.Items.Add(new ListItem("" + aRow["Cat_Name"].ToString().ToUpper() + "", aRow["Cat_ID"] + ""));
                    }
                    if (lb_Cate != null)
                    {
                        lb_Cate.Items.Add(new ListItem("" + aRow["Cat_Name"].ToString().ToUpper() + "", aRow["Cat_ID"] + ""));
                    }
                    if (cbl_Cate != null)
                    {
                        cbl_Cate.Items.Add(new ListItem("" + aRow["Cat_Name"].ToString().ToUpper() + "", aRow["Cat_ID"] + ""));
                    }

                    strResult += aRow["Cat_ID"] + ",";
                }
                return(strResult);
            }
        }
        public static string GetTabReferenceByCatId(int catId)
        {
            string tab = string.Empty;

            Portal.Core.DAL.MainDB      db       = new Portal.Core.DAL.MainDB();
            Portal.Core.DAL.CategoryRow category = db.CategoryCollection.GetByPrimaryKey(catId);
            if (category != null)
            {
                tab = category.Cat_DisplayURL;
                while (category.Cat_ParentID != 0)
                {
                    category = db.CategoryCollection.GetByPrimaryKey(category.Cat_ParentID);
                    if (category != null)
                    {
                        tab = category.Cat_DisplayURL + "." + tab;
                    }
                }
                tab = db.EditionTypeCollection.GetByPrimaryKey(category.EditionType_ID).EditionDisplayURL + "." + tab;
            }

            return(tab);
        }
 public static bool CheckUpdateCate(int Cate_ID, int NewsParent, bool IsFirst)
 {
     if (NewsParent == 0)
     {
         return(true);
     }
     if (IsFirst && (Cate_ID == NewsParent))
     {
         return(false);
     }
     using (Portal.Core.DAL.MainDB db = new Portal.Core.DAL.MainDB())
     {
         Portal.Core.DAL.CategoryRow objrow;
         objrow = db.CategoryCollection.GetByPrimaryKey(NewsParent);
         if (Cate_ID == objrow.Cat_ParentID)
         {
             return(false);
         }
         else
         {
             return(CheckUpdateCate(Cate_ID, objrow.Cat_ParentID, false));
         }
     }
 }
 public static DataTable GetCategoriesByParent(int parentId)
 {
     Portal.Core.DAL.MainDB objDb = new Portal.Core.DAL.MainDB();
     return(objDb.CategoryCollection.GetAsDataTable("Cat_ParentID = " + parentId, "Cat_Order"));
 }
        public static void UpdateCate(int _catid, string _catname, string _catdes, string _caturl, int _catparent, int _catedition, string _caticon, bool _catiscolumn, bool _catishide)
        {
            CleanCacheCategory();

            Portal.Core.DAL.CategoryRow    objrow;
            Portal.Core.DAL.EditionTypeRow objEditRow         = null;
            Portal.Core.DAL.CategoryRow    objParentRow       = null;
            Portal.Core.DAL.CategoryRow    objrow_find_parent = null;

            string strOldUrl = "";

            using (Portal.Core.DAL.MainDB objDb = new Portal.Core.DAL.MainDB())
            {
                objrow       = objDb.CategoryCollection.GetByPrimaryKey(_catid);
                objParentRow = objDb.CategoryCollection.GetByPrimaryKey(objrow.Cat_ParentID);
                objEditRow   = objDb.EditionTypeCollection.GetByPrimaryKey(objrow.EditionType_ID);

                if (_catparent != 0)
                {
                    int cat_id_find_parent = GetCatParent(Convert.ToInt32(_catparent));
                    objrow_find_parent = objDb.CategoryCollection.GetByPrimaryKey(cat_id_find_parent);
                    _catedition        = objrow_find_parent.EditionType_ID;
                }
            }
            if (objrow != null)
            {
                strOldUrl              = objrow.Cat_DisplayURL;
                objrow.Cat_Name        = _catname;
                objrow.Cat_Description = _catdes;
                objrow.Cat_DisplayURL  = _caturl;
                objrow.Cat_ParentID    = _catparent;
                objrow.EditionType_ID  = _catedition;
                //objrow.EditionType_ID = objrow_find_parent.EditionType_ID;
                if (_caticon != null && _caticon != "")
                {
                    objrow.Cat_Icon = _caticon;
                }
                objrow.Cat_isColumn = _catiscolumn;
                objrow.Cat_isHidden = _catishide;
                using (Portal.Core.DAL.MainDB objDb = new Portal.Core.DAL.MainDB())
                {
                    objDb.CategoryCollection.Update(objrow);
                    //UpdateEditionType(objrow.Cat_ID, objrow.EditionType_ID, objDb);
                }
                //cap nhat lai tabref neu co su thay doi ten o displayUrl
                string strEditionRef   = "";
                string strParentTabRef = "";
                string strNewRef       = "";
                string strOldRef       = "";
                if (objEditRow != null)
                {
                    //strEditionRef = objEditRow.EditionDisplayURL;
                    //SonPC
                    String UseEditionType = System.Configuration.ConfigurationSettings.AppSettings["UseEditionType"];
                    if (UseEditionType.ToLower().IndexOf("false") >= 0)
                    {
                        strEditionRef = System.Configuration.ConfigurationSettings.AppSettings["PrefixEditionType"];
                    }
                    else
                    {
                        strEditionRef = objEditRow.EditionDisplayURL;
                    }
                    //SonPC


                    strOldRef = strEditionRef + ".";
                    strNewRef = strEditionRef + ".";
                }
                if (objParentRow != null)
                {
                    strParentTabRef = objParentRow.Cat_DisplayURL;
                    strOldRef       = strOldRef + "." + strParentTabRef + ".";
                    strNewRef       = strNewRef + "." + strParentTabRef + ".";
                }
                strOldRef = strOldRef + strOldUrl;
                strNewRef = strNewRef + _caturl;
                Gentabhelper objHelp = new Gentabhelper();
                objHelp.SyncCategoryTab(strOldRef, strNewRef, _catname, strEditionRef, strParentTabRef, _caturl, _catname);

                #region Cập nhập vào bảng Category ở database User
                Portal.User.Db.CategoryRow objCateUserRow = new Portal.User.Db.CategoryRow();
                using (Portal.User.Db.MainDB objDb = new Portal.User.Db.MainDB())
                {
                    objCateUserRow = objDb.CategoryCollection.GetByPrimaryKey(objrow.Cat_ID);
                }
                objCateUserRow.Cat_Name     = objrow.Cat_Name;
                objCateUserRow.Cat_ParentID = objrow.Cat_ParentID;
                objCateUserRow.Cat_Order    = objrow.Cat_Order;
                objCateUserRow.Channel_ID   = Portal.API.Config.CurrentChannel;
                using (Portal.User.Db.MainDB objDb = new Portal.User.Db.MainDB())
                {
                    objDb.CategoryCollection.Update(objCateUserRow);
                }

                #endregion
            }
        }
        public static void CreateCat(string _catname, string _catdes, string _caturl, int _catparent, int _catedition, string _caticon, bool _catiscolumn, bool _catishide)
        {
            CleanCacheCategory();

            Portal.Core.DAL.CategoryRow objrow = new Portal.Core.DAL.CategoryRow();
            objrow.Cat_Name        = _catname;
            objrow.Cat_Description = _catdes;
            objrow.Cat_DisplayURL  = _caturl;
            objrow.Cat_ParentID    = _catparent;
            objrow.EditionType_ID  = _catedition;
            objrow.Cat_Icon        = _caticon;
            objrow.Cat_isColumn    = _catiscolumn;
            objrow.Cat_isHidden    = _catishide;
            EditionTypeRow objEditRow = null;

            Portal.Core.DAL.CategoryRow objParentRow       = null;
            Portal.Core.DAL.CategoryRow objrow_find_parent = null;

            Portal.Core.DAL.CategoryRow[] objTopRows;
            int intMaxOrder = 0;

            using (Portal.Core.DAL.MainDB objDb = new Portal.Core.DAL.MainDB())
            {
                if (_catparent != 0)
                {
                    int cat_id_find_parent = GetCatParent(Convert.ToInt32(_catparent));
                    objrow_find_parent = objDb.CategoryCollection.GetByPrimaryKey(cat_id_find_parent);
                    _catedition        = objrow_find_parent.EditionType_ID;
                }

                //if (_catparent == 0)
                //    objEditRow = objDb.EditionTypeCollection.GetByPrimaryKey(_catedition);
                //else
                //{
                objParentRow = objDb.CategoryCollection.GetByPrimaryKey(_catparent);
                //    objEditRow = objDb.EditionTypeCollection.GetByPrimaryKey(objParentRow.EditionType_ID);
                //}

                objEditRow = objDb.EditionTypeCollection.GetByPrimaryKey(_catedition);

                objTopRows = objDb.CategoryCollection.GetTopAsArray(1, "Cat_ParentID=" + _catparent, "Cat_Order DESC");
                if (objTopRows.Length == 1)
                {
                    if (objTopRows[0].IsCat_OrderNull)
                    {
                        intMaxOrder = 1;
                    }
                    else
                    {
                        intMaxOrder = objTopRows[0].Cat_Order + 1;
                    }
                }
                objrow.Cat_Order      = intMaxOrder;
                objrow.EditionType_ID = _catedition;
                objDb.CategoryCollection.Insert(objrow);
            }

            //#region Cập nhập vào bảng Category ở database User
            //Portal.User.Db.CategoryRow objCateUserRow = new Portal.User.Db.CategoryRow();
            //objCateUserRow.Cat_ID = objrow.Cat_ID;
            //objCateUserRow.Cat_Name = objrow.Cat_Name;
            //objCateUserRow.Cat_ParentID = objrow.Cat_ParentID;
            //objCateUserRow.Cat_Order = objrow.Cat_Order;
            //objCateUserRow.Channel_ID = Portal.API.Config.CurrentChannel;
            //using (Portal.User.Db.MainDB objDb = new Portal.User.Db.MainDB())
            //{
            //    objDb.CategoryCollection.Insert(objCateUserRow);
            //}
            //#endregion



            //cap nhat thong tin ve tab moi khi them cat
            string strEditionRef   = "";
            string strParentTabRef = "";

            if (objEditRow != null)
            {
                //strEditionRef = objEditRow.EditionDisplayURL;
                //SonPC
                String UseEditionType = ConfigurationSettings.AppSettings["UseEditionType"];
                if (UseEditionType.ToLower().IndexOf("false") >= 0)
                {
                    strEditionRef = ConfigurationSettings.AppSettings["PrefixEditionType"];
                }
                else
                {
                    strEditionRef = objEditRow.EditionDisplayURL;
                }

                //SonPC
            }
            if (objParentRow != null)
            {
                strParentTabRef = objParentRow.Cat_DisplayURL;
            }
            //thuc hien lay doi tuong GenTabHelper
            Gentabhelper objHelp = new Gentabhelper();

            objHelp.AddCategoryTab(strEditionRef, strParentTabRef, _caturl, _catname);
        }
        //SonPC 13/02/2008

        #endregion


        public static DataTable GetListCategory(string strNotInCatId)
        {
            strNotInCatId = "-1";
            if (strNotInCatId.Trim() == "")
            {
                strNotInCatId = "-1";
            }

            DataTable dtCat     = new DataTable();
            DataTable objresult = new DataTable();
            DataTable dtz       = new DataTable();
            DataTable dt3       = new DataTable();

            object[] objarr = null;
            Portal.Core.DAL.MainDB objDbCore = new Portal.Core.DAL.MainDB();
            try
            {
                dtCat = objDbCore.FrontEndStoreProcedure.Category_GetListByWhere(" Where (Cat_ParentID = 0 or Cat_ParentID is null) AND Cat_ID NOT IN (" + strNotInCatId + ") ", "");
                dtCat.Columns.Add(new DataColumn("ID"));
                dtCat.Columns.Add(new DataColumn("Title"));
                objresult = dtCat.Clone();

                foreach (DataRow objrow in dtCat.Rows)
                {
                    objarr = objrow.ItemArray;
                    objarr.SetValue(objrow["Cat_ID"], objarr.Length - 2);
                    objarr.SetValue(objrow["Cat_Name"], objarr.Length - 1);
                    objresult.Rows.Add(objarr);

                    // Get cac chuyen muc con
                    dtz = objDbCore.FrontEndStoreProcedure.Category_GetListByWhere(" Where Cat_ParentID = " + objrow["Cat_ID"] + " AND Cat_ID NOT IN (" + strNotInCatId + ") ", "");
                    dtz.Columns.Add(new DataColumn("ID"));
                    dtz.Columns.Add(new DataColumn("Title"));

                    foreach (DataRow drz in dtz.Rows)
                    {
                        drz["Cat_Name"] = "      " + drz["Cat_Name"];
                        objarr          = drz.ItemArray;
                        objarr.SetValue(drz["Cat_ID"], objarr.Length - 2);
                        objarr.SetValue(drz["Cat_Name"], objarr.Length - 1);
                        objresult.Rows.Add(objarr);

                        #region Chuyen muc con cap 3
                        // Get cac chuyen muc con cap 3
                        dt3 = objDbCore.FrontEndStoreProcedure.Category_GetListByWhere(" Where Cat_ParentID = " + drz["Cat_ID"] + " AND Cat_ID NOT IN (" + strNotInCatId + ") ", "");
                        dt3.Columns.Add(new DataColumn("ID"));
                        dt3.Columns.Add(new DataColumn("Title"));

                        if (dt3.Rows.Count > 0)
                        {
                            foreach (DataRow dr3 in dt3.Rows)
                            {
                                dr3["Cat_Name"] = "            " + dr3["Cat_Name"];
                                objarr          = dr3.ItemArray;
                                objarr.SetValue(dr3["Cat_ID"], objarr.Length - 1);
                                objarr.SetValue(dr3["Cat_Name"], objarr.Length - 1);
                                objresult.Rows.Add(objarr);
                            }
                        }
                        #endregion
                    }
                }
            }

            catch (Exception e)
            {
            }

            dtCat.Dispose();
            dtz.Dispose();
            return(objresult);
        }