public void MenuHome_Create(MenuHomeInfo[] ArrInfo)
        {
            using (var Db = new ProjectWebEntities())
            {
                Db.Database.ExecuteSqlCommand("TRUNCATE TABLE [Tbl_MenuMultiLevel]");
                foreach (var item in ArrInfo)
                {
                    var menuhome  = new Tbl_MenuMultiLevel();
                    var menuhome1 = new Tbl_MenuMultiLevel();
                    if (item.titlechild == null)//không có childs
                    {
                        if (item.MenuCode == null)
                        {
                            item.MenuCode = "" + (getLastID() + 1);
                        }
                        menuhome.Menu       = item.titleparent;
                        menuhome.Url        = item.linkparent;
                        menuhome.ProductId  = item.ProducttypeIdParent;
                        menuhome.MenuCode   = int.Parse(item.MenuCode);
                        menuhome.NewsId     = item.NewsParent;
                        menuhome.NewsTypeId = item.NewsTypeParent;
                        menuhome.Icon       = item.Icon;
                        menuhome.TitleEng   = item.titleengparent;
                        Db.Tbl_MenuMultiLevel.Add(menuhome);
                        Db.SaveChanges();
                    }
                    else
                    {
                        //var menucode = int.Parse(item.MenuCode);
                        var check1 = Db.Tbl_MenuMultiLevel.Where(m => m.Menu == item.titleparent && m.Url == item.linkparent);

                        if (check1.Count() == 0)
                        {
                            if (item.MenuCode == null)
                            {
                                item.MenuCode = "" + (getLastID() + 1);
                            }
                            menuhome.Menu       = item.titleparent;
                            menuhome.Url        = item.linkparent;
                            menuhome.ProductId  = item.ProducttypeIdParent;
                            menuhome.NewsId     = item.NewsParent;
                            menuhome.NewsTypeId = item.NewsTypeParent;
                            menuhome.MenuCode   = int.Parse(item.MenuCode);
                            menuhome.Icon       = item.Icon;
                            menuhome.TitleEng   = item.titleengparent;
                            Db.Tbl_MenuMultiLevel.Add(menuhome);
                            Db.SaveChanges();

                            if (item.MenuCodeChild == null)
                            {
                                item.MenuCodeChild = "" + (getLastID() + 1);
                            }
                            menuhome1.Menu       = item.titlechild;
                            menuhome1.Url        = item.linkchild;
                            menuhome1.ParentId   = menuhome.MenuId;
                            menuhome1.ProductId  = item.ProducttypeIdChild;
                            menuhome1.NewsTypeId = item.NewsTypeChild;
                            menuhome1.MenuCode   = int.Parse(item.MenuCodeChild);
                            menuhome1.NewsId     = item.NewsChild;
                            menuhome1.TitleEng   = item.titleengchild;
                            Db.Tbl_MenuMultiLevel.Add(menuhome1);
                            Db.SaveChanges();
                        }
                        else
                        {
                            int index    = 0;
                            var parentid = 0;
                            foreach (var item1 in check1)
                            {
                                index++;
                                if (index == check1.Count())
                                {
                                    parentid = item1.MenuId;
                                }
                            }

                            var check2 = Db.Tbl_MenuMultiLevel.Where(m => m.Menu == item.titlechild && m.Url == item.linkchild && m.ParentId == parentid);
                            if (check2.Count() == 0)
                            {
                                if (item.MenuCodeChild == null)
                                {
                                    item.MenuCodeChild = "" + (getLastID() + 1);
                                }
                                menuhome1.Menu       = item.titlechild;
                                menuhome1.Url        = item.linkchild;
                                menuhome1.ParentId   = parentid;
                                menuhome1.ProductId  = item.ProducttypeIdChild;
                                menuhome1.NewsTypeId = item.NewsTypeChild;
                                menuhome1.MenuCode   = int.Parse(item.MenuCodeChild);
                                menuhome1.NewsId     = item.NewsChild;
                                menuhome1.TitleEng   = item.titleengchild;
                                Db.Tbl_MenuMultiLevel.Add(menuhome1);
                                Db.SaveChanges();
                            }
                        }
                    }
                }
            }
        }
        public JsonResult CreateMenu(MenuCreate model)
        {
            using (var db = new ProjectWebEntities())
            {
                try
                {
                    var code = 0;
                    //Check Null cho list Children
                    if (model.MenuChildren == null)
                    {
                        model.MenuChildren = new List <MenuChild>();
                    }
                    if (model.Id == 0)
                    {
                        var parent = new Tbl_MenuMultiLevel();
                        parent.Menu = model.MenuName;
                        parent.Url  = model.MenuUrl;
                        db.Tbl_MenuMultiLevel.Add(parent);
                        foreach (var item in model.MenuChildren)
                        {
                            code++;
                            if (item.Id == 0)
                            {
                                var child = new Tbl_MenuMultiLevel();
                                child.Menu        = item.ChildName;
                                child.PageId      = item.PageId;
                                child.Url         = item.Url;
                                child.ParentId    = parent.MenuId;
                                child.PageChildId = item.PageChildId;
                                child.MenuCode    = code;
                                db.Tbl_MenuMultiLevel.Add(child);
                            }
                            else
                            {
                                var child = db.Tbl_MenuMultiLevel.Find(item.Id);
                                child.Menu            = item.ChildName;
                                child.PageId          = item.PageId;
                                child.MenuCode        = code;
                                child.PageChildId     = item.PageChildId;
                                child.Url             = item.Url;
                                db.Entry(child).State = EntityState.Modified;
                            }
                        }
                        db.SaveChanges();
                    }
                    else
                    {
                        var parent = db.Tbl_MenuMultiLevel.Find(model.Id);
                        parent.Menu            = model.MenuName;
                        parent.Url             = model.MenuUrl;
                        db.Entry(parent).State = EntityState.Modified;
                        var lstRemove = parent.Tbl_MenuMultiLevel1.ToList();

                        foreach (var item in model.MenuChildren)
                        {
                            code++;
                            if (item.Id == 0)
                            {
                                var child = new Tbl_MenuMultiLevel();
                                child.Menu        = item.ChildName;
                                child.MenuCode    = code;
                                child.PageId      = item.PageId;
                                child.Url         = item.Url;
                                child.ParentId    = parent.MenuId;
                                child.PageChildId = item.PageChildId;
                                db.Tbl_MenuMultiLevel.Add(child);
                            }
                            else
                            {
                                var child = db.Tbl_MenuMultiLevel.Find(item.Id);
                                child.MenuCode        = code;
                                child.Menu            = item.ChildName;
                                child.PageId          = item.PageId;
                                child.PageChildId     = item.PageChildId;
                                child.Url             = item.Url;
                                db.Entry(child).State = EntityState.Modified;
                                //remove
                                lstRemove.Remove(child);
                            }
                        }
                        if (lstRemove.Any())
                        {
                            foreach (var item in lstRemove)
                            {
                                db.Entry(item).State = EntityState.Deleted;
                            }
                        }

                        db.SaveChanges();
                    }
                    //Xóa cache
                    CacheHelper.ClearAllOutputCache();
                    return(Json(JsonRequestBehavior.AllowGet));
                }
                catch (Exception ex)
                {
                    TempData["ThanhCong"] = "Có lỗi xảy ra ! <br/> Xin vui lòng thử lại hoặc liên hệ Admin";
                    logger.Error("An Error Happened! ", ex);
                    return(Json(ex, JsonRequestBehavior.DenyGet));
                }
            }
        }