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)); } } }