public void AddTest() { var model = new SysMenu { SysId = "cf9d52cc-0500-4829-9611-fd0056961234", MenuParentId = null, MenuOrder = 1, MenuName = "文件", MenuLink = "文件菜单链接1", MenuIcon = "文件菜单图标1", IsVisible = 1, IsLeaf = 0, RecordStatus = string.Format("创建时间:{0},创建人:{1}", DateTime.Now.ToString(CultureInfo.InvariantCulture), "jim") }; Console.WriteLine(repository.Add(model)); }
/// <summary> /// 递归构建层次结构menu树结构 /// </summary> /// <param name="menu"></param> /// <param name="allButtons"></param> /// <param name="result"></param> /// <returns></returns> private EasyUiTreeResult BuildTreeByLoop(SysMenu menu, IEnumerable<SysButton> allButtons, EasyUiTreeResult result) { if (menu.Children == null) { return GetButtonsByMenu(allButtons, menu); } List<EasyUiTreeResult> ts = new List<EasyUiTreeResult>(); foreach (var m in menu.Children) { EasyUiTreeResult t = new EasyUiTreeResult() { id = m.SysId, text = m.MenuName, link = m.MenuLink, recordStatus = m.RecordStatus, @checked = m.isCheck, visible = m.IsVisible != null && ((PrivilegeOperation)(m.IsVisible.Value)) == PrivilegeOperation.Enable ? "启用" : "禁用" }; ts.Add(BuildTreeByLoop(m, allButtons, t)); } result.children = ts.ToArray(); return result; }
public JsonResult UpdateMenu(SysMenu menu) { if (!ModelState.IsValid) Json(false); if (menu.SysId == menu.MenuParentId) return Json(true); menu.RecordStatus = UpdateRecordMsg; if (menuService.MenuRepository.Update(menu) > 0) { /* Logger.LogMsg( LogLevel.Info, string.Format("修改菜单:{0} 成功", menu.MenuName), UserData.SysId, UserData.UserName, "RestApi->UpdateMenu", suggest: Util.DumpProperties(menu));*/ return Json(true); } /* Logger.LogMsg( LogLevel.Error, string.Format("修改菜单:{0} 失败", menu.MenuName), UserData.SysId, UserData.UserName, "RestApi->UpdateMenu", "RestApi", "如果不报错是数据问题", suggest: Util.DumpProperties(menu));*/ return Json(false); }
public JsonResult AddMenu(SysMenu menu, bool creatButton, bool editButton, bool deletButton) { if (!ModelState.IsValid) Json(false); menu.RecordStatus = CreateRecordMsg; if (!string.IsNullOrEmpty(menu.MenuParentId) && menu.MenuParentId.Trim().Length > 0) { menu.SysId = Util.NewId(); if (menuService.MenuRepository.AddOrModifyTrans( menu, buttonService.InitialAddModifyDelBtn( menu.SysId, CreateRecordMsg, creatButton, editButton, deletButton), menuService.MenuRepository.Add, buttonService.ButtonRepository.Add) > 0) { /* Logger.LogMsg( LogLevel.Info, string.Format( "添加菜单:{0},creatButton:{1},editButton:{2},deletButton:{3} 成功", menu.MenuName, creatButton, editButton, deletButton), UserData.SysId, UserData.UserName, "RestApi->AddMenu", suggest: Util.DumpProperties(menu));*/ return Json(true); } } else { if (menuService.MenuRepository.Add(menu) > 0) { /*Logger.LogMsg( LogLevel.Info, string.Format("添加菜单:{0} 成功", menu.MenuName), UserData.SysId, UserData.UserName, "RestApi->AddMenu", suggest: Util.DumpProperties(menu));*/ return Json(true); } } /* Logger.LogMsg( LogLevel.Error, string.Format( "添加菜单:{0},creatButton:{1},editButton:{2},deletButton:{3} 失败", menu.MenuName, creatButton, editButton, deletButton), UserData.SysId, UserData.UserName, "RestApi->AddMenu", suggest: Util.DumpProperties(menu));*/ return Json(false); }
/// <summary> /// 根据menu获取menu下所有button /// </summary> /// <param name="allButtons"></param> /// <param name="menu"></param> /// <returns></returns> private EasyUiTreeResult GetButtonsByMenu(IEnumerable<SysButton> allButtons, SysMenu menu) { var bts = allButtons.Where(x => x.MenuId == menu.SysId); bts = bts.Where(x => x.IsVisible == (long)PrivilegeOperation.Enable); List<EasyUiTreeResult> buttons = new List<EasyUiTreeResult>(); if (bts.Any()) { #region 如果此菜单下有可用按钮,判断添加按钮可用或者不可用 if (menu.Buttons != null) { foreach (SysButton button in menu.Buttons) { if (button.IsVisible == (long)PrivilegeOperation.Enable) { EasyUiTreeResult buttonc = new EasyUiTreeResult() { id = button.SysId, text = button.BtnName, iconCls = button.BtnIcon, @checked = true, link = button.BtnFunction, order = button.BtnOrder, recordStatus = button.RecordStatus, }; buttons.Add(buttonc); } bts = bts.Where(x => x.SysId != button.SysId); } foreach (SysButton button in bts) { EasyUiTreeResult buttonc = new EasyUiTreeResult() { id = button.SysId, text = button.BtnName, iconCls = button.BtnIcon, @checked = false, link = button.BtnFunction, order = button.BtnOrder, recordStatus = button.RecordStatus, }; buttons.Add(buttonc); } } #endregion #region 如果此菜单无有权限按钮,添加全部按钮 else { foreach (SysButton button in bts) { EasyUiTreeResult buttonc = new EasyUiTreeResult() { id = button.SysId, text = button.BtnName, iconCls = button.BtnIcon, @checked = false, link = button.BtnFunction, order = button.BtnOrder, recordStatus = button.RecordStatus }; buttons.Add(buttonc); } } #endregion } EasyUiTreeResult treeResult = new EasyUiTreeResult() { id = menu.SysId, text = menu.MenuName, link = menu.MenuLink, iconCls = menu.MenuIcon, @checked = menu.isCheck, children = new EasyUiTreeResult[0], visible = menu.IsVisible != null && ((PrivilegeOperation)(menu.IsVisible.Value)) == PrivilegeOperation.Enable ? "启用" : "禁用", buttons = buttons.ToArray() }; return treeResult; }