public CommandResult <LeftMenus> Update(int leftMenuId, long timestamp, LeftMenusUpdateRequestModel requestModel) { var result = new CommandResult <LeftMenus>(); using (var db = new FrameContext()) { if (!BaseService.Exist(db, a => a.Id == leftMenuId)) { result.Message = "该数据在系统中已不存在,请检查后再试……"; } else if (!BaseService.Exist(db, a => a.Id == leftMenuId && a.Timestamp == timestamp)) { result.Message = "该节点已在别处被更改过!"; } else { var entity = BaseService.Find(db, a => a.Id == leftMenuId); entity.DisplayName = requestModel.DisplayName; entity.DllPath = requestModel.DllPath; entity.EntryFunction = requestModel.EntryFunction; entity.Ico = requestModel.Ico; entity.MenuId = requestModel.MenuId; entity.NavBarGroupId = requestModel.NavBarGroupId; entity.ParentId = requestModel.ParentId; entity.StartWithSys = requestModel.StartWithSys; entity.Timestamp = requestModel.Timestamp; if (!BaseService.Update(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 BtnSave_OnClick(object sender, RoutedEventArgs e) { if (!_clsLoginModel.PermissionsFunc(_currentMenuId, (int)PermissionsEnum.修改)) { _metroWindow.ShowMessageAsync("友情提示", "您没有修改菜单信息的权限"); return; } if (!Verify()) { return; } if (!JudgeDisplayNameNotRootName(_metroWindow, DisplayName)) { return; } Action updateAction = () => { var requestModel = new LeftMenusUpdateRequestModel { DisplayName = DisplayName, DllPath = DllPath, EntryFunction = EntryFunction, Ico = null, MenuId = MenuId, NavBarGroupId = NavBarGroupId, ParentId = ParentId, StartWithSys = StartWithSysYes, Timestamp = _leftMenusManage.ServerTime.ToUnixTimestamp() }; var result = _leftMenusManage.Update(LeftMenuId, Timestamp, requestModel); if (result.ResultStatus == ResultStatus.Success) { var selectedTreeView = GetSelectedTreeView(); Timestamp = result.Data.Timestamp; ((LeftMenus)((TreeViewItem)selectedTreeView.SelectedItem).DataContext).Timestamp = result.Data.Timestamp; var currentTreeView = GetSelectedTreeView(); UpdateSelectedItemPosition(LeftMenuId); UpdateSort(currentTreeView.Items); UpdateSelectedItem(currentTreeView.Items, LeftMenuId); _leftMenu.LeftMenusList = _leftMenusManage.GetAll(); } _metroWindow.ShowMessageAsync(result.ResultStatus == ResultStatus.Success ? "更新成功" : "更新失败", result.Message); }; var setting = new MetroDialogSettings { AnimateShow = true, AnimateHide = true, AffirmativeButtonText = "确定", NegativeButtonText = "取消", DefaultButtonFocus = MessageDialogResult.Negative }; _metroWindow.ShowMessageAsync("更新节点提示", "您确定要更新此节点信息吗?", MessageDialogStyle.AffirmativeAndNegative, setting).ContinueWith( t => { _metroWindow.Dispatcher.Invoke((Action)(() => { if (t.Result == MessageDialogResult.Affirmative) { if (_leftMenusManage.Exist(a => a.Id != LeftMenuId && a.DisplayName == DisplayName.Trim())) { _metroWindow.ShowMessageAsync("信息重复提示", $"菜单名称“{DisplayName}”,在系统中已存在,是否仍使用该名称?", MessageDialogStyle.AffirmativeAndNegative, setting) .ContinueWith(z => { if (z.Result == MessageDialogResult.Affirmative) { _metroWindow.Dispatcher.Invoke((Action)(() => { updateAction(); })); } }); } else { updateAction(); } } })); }); }