public CommandResult <TopMenus> Add(TopMenusAddRequestModel requestModel) { var result = new CommandResult <TopMenus>(); using (var db = new FrameContext()) { if (requestModel.MenuId != null && requestModel.MenuId.Trim().Length != 0 && BaseService.Exist(db, a => a.MenuId == requestModel.MenuId)) { result.Message = $"菜单唯一标识 MenuId “{requestModel.MenuId}”,在系统中已存在,请重新输入……"; } else { var entity = new TopMenus { DisplayName = requestModel.DisplayName, DllPath = requestModel.DllPath, EntryFunction = requestModel.EntryFunction, MenuId = requestModel.MenuId, ParentId = requestModel.ParentId, Sort = requestModel.Sort, Timestamp = requestModel.Timestamp }; if (!BaseService.Add(db, entity)) { result.Message = "未知原因"; } else { result.ResultStatus = ResultStatus.Success; result.Message = "新的节点信息添加成功"; result.Data = entity; } } } return(result); }
/// <summary> /// 添加 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void BtnAdd_OnClick(object sender, RoutedEventArgs e) { if (!_clsLoginModel.PermissionsFunc(_currentMenuId, (int)PermissionsEnum.添加)) { _metroWindow.ShowMessageAsync("友情提示", "您没有添加菜单信息的权限"); return; } if (!Verify()) { return; } if (!LeftMenuManager.JudgeDisplayNameNotRootName(_metroWindow, DisplayName)) { return; } Action addAction = () => { var requestModel = new TopMenusAddRequestModel { DisplayName = DisplayName, DllPath = DllPath, EntryFunction = EntryFunction, MenuId = MenuId, ParentId = ParentId, Sort = int.MaxValue, Timestamp = _topMenusManage.ServerTime.ToUnixTimestamp() }; var result = _topMenusManage.Add(requestModel); if (result.ResultStatus == ResultStatus.Success) { ClearMenuData(); var newItem = GenerateTreeViewItem(result.Data); if (TreeViewMain.SelectedItem == null || ((TreeViewItem)TreeViewMain.SelectedItem).Header.ToString() == Config.RootDisplayName) { TreeViewMain.Items.Add(newItem); } else { ((TreeViewItem)TreeViewMain.SelectedItem).Items.Add(newItem); } _topMenusList = _topMenusManage.GetAll(); } _metroWindow.ShowMessageAsync(result.ResultStatus == ResultStatus.Success ? "添加成功提示" : "添加失败提示", result.Message); }; var setting = new MetroDialogSettings { AnimateShow = true, AnimateHide = true, AffirmativeButtonText = "是", NegativeButtonText = "否", DefaultButtonFocus = MessageDialogResult.Negative }; if (_topMenusManage.Exist(a => a.DisplayName == DisplayName.Trim())) { _metroWindow.ShowMessageAsync("信息重复提示", $"菜单名称“{DisplayName}”,在系统中已存在,是否仍使用该名称?", MessageDialogStyle.AffirmativeAndNegative, setting).ContinueWith( t => { _metroWindow.Dispatcher.Invoke((Action)(() => { if (t.Result == MessageDialogResult.Affirmative) { addAction(); } })); }); } else { addAction(); } }