private async void trvMenu_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e) { string strErrorMsg = string.Empty; try { if (this.trvMenu.SelectedItem == null) { return; } this._menuDisplayModel = (MenuDisplayModel)((TreeViewItem)this.trvMenu.SelectedItem).Tag; if (_menuDisplayModel == null) { return; } IAsyncProxy <IMenuModelService> _menuAyncProxy = await Task.Run(() => ServiceHelper.GetMenuService()); MenuEditModel _sysmenu = await _menuAyncProxy.CallAsync(c => c.GetMenuByCode(this._menuDisplayModel.Code)); this.labMenuCode.Content = _sysmenu.MenuCode; this.labName.Content = _sysmenu.Name; this.labDisplayName.Content = _sysmenu.DisplayName; this.labShowIndex.Content = _sysmenu.ShowIndex; this.labMenuParent.Content = _sysmenu.ParentCode; this.labMenuType.Content = _sysmenu.Type; this.txtMenuRemark.Text = _sysmenu.Remark; this.labModule.Content = _sysmenu.ModuleCode; this.labFunction.Content = _sysmenu.FunctionCode; } catch (TimeoutException timeProblem) { strErrorMsg = timeProblem.Message + UIResources.TimeOut + timeProblem.Message; } catch (FaultException <LCFault> af) { strErrorMsg = af.Detail.Message; } catch (FaultException unknownFault) { strErrorMsg = UIResources.UnKnowFault + unknownFault.Message; } catch (CommunicationException commProblem) { strErrorMsg = UIResources.ConProblem + commProblem.Message + commProblem.StackTrace; } catch (Exception ex) { strErrorMsg = ex.Message; //AisinoMessageBox.Show(ex.Message, UIResources.MsgInfo, MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.OK); } if (strErrorMsg != string.Empty) { await DialogManager.ShowMessageAsync(this.GetMainWindow(), UIResources.MsgError, "选择菜单失败!原因:" + strErrorMsg, MessageDialogStyle.Affirmative, null); } }
private void menuCmb(MenuDisplayModel menuDisplayModel, List <MenuDisplayModel> menuList) { if (menuDisplayModel.SubMenus != null || menuDisplayModel.SubMenus.Count > 0) { foreach (var item in menuDisplayModel.SubMenus) { menuList.Add(item); menuCmb(item, menuList); } } }
private async void subSystemMenuBind() { IAsyncProxy <IMenuModelService> asyncProxy = await Task.Run(() => ServiceHelper.GetMenuService()); MenuDisplayModel rootMenu = await asyncProxy.CallAsync(c => c.GetRootMenu()); RadTreeViewItem menuHeader = new RadTreeViewItem(); menuHeader.Header = rootMenu.Name; menuHeader.IsExpanded = true; this.rightmenuTree.Items.Add(menuHeader); EachTree(rootMenu, menuHeader); }
private async void btnDeleMenu_Click(object sender, RoutedEventArgs e) { string strErrorMsg = string.Empty; try { if (this.trvMenu.SelectedItem == null || this._menuDisplayModel == null) { await DialogManager.ShowMessageAsync(this.GetMainWindow(), UIResources.MsgInfo, "没有选择菜单请选择!", MessageDialogStyle.Affirmative, null); return; } MessageDialogResult result = await DialogManager.ShowMessageAsync(this.GetMainWindow(), UIResources.MsgInfo, "确认删除所选菜单吗?", MessageDialogStyle.AffirmativeAndNegative, null); if (result == MessageDialogResult.Affirmative) { _menuAyncProxy = await Task.Run(() => ServiceHelper.GetMenuService()); await _menuAyncProxy.CallAsync(c => c.DeleteByCode(this._menuDisplayModel.Code)); this._menuDisplayModel = null; bindMenuList(); } } catch (TimeoutException timeProblem) { strErrorMsg = timeProblem.Message + UIResources.TimeOut + timeProblem.Message; } catch (FaultException <LCFault> af) { strErrorMsg = af.Detail.Message; } catch (FaultException unknownFault) { strErrorMsg = UIResources.UnKnowFault + unknownFault.Message; } catch (CommunicationException commProblem) { strErrorMsg = UIResources.ConProblem + commProblem.Message + commProblem.StackTrace; } catch (Exception ex) { strErrorMsg = ex.Message; } if (strErrorMsg != string.Empty) { await DialogManager.ShowMessageAsync(this.GetMainWindow(), UIResources.MsgError, "删除菜单失败!原因:" + strErrorMsg, MessageDialogStyle.Affirmative, null); } }
private void buildMenuTree(MenuDisplayModel rootMenu, TreeViewItem menuHeader) { foreach (MenuDisplayModel menuItem in rootMenu.SubMenus) { TreeViewItem treeViewItem = new TreeViewItem(); treeViewItem.IsExpanded = true; treeViewItem.Tag = menuItem; treeViewItem.Header = menuItem.Name; menuHeader.Items.Add(treeViewItem); if (menuItem.SubMenus != null && menuItem.SubMenus.Count > 0) { buildMenuTree(menuItem, treeViewItem); } } }
/// <summary> ///构造菜单树 /// </summary> /// <param name="mytree"></param> /// <param name="menuDisplayModel"></param> private async void EachTree(MenuDisplayModel rootMenu, RadTreeViewItem menuHeader) { string strErrorMsg = string.Empty; try { foreach (MenuDisplayModel menuItem in rootMenu.SubMenus) { RadTreeViewItem treeViewItem = new RadTreeViewItem(); treeViewItem.Tag = menuItem; treeViewItem.IsExpanded = true; treeViewItem.Header = menuItem.Name; menuHeader.Items.Add(treeViewItem); if (menuItem.SubMenus != null && menuItem.SubMenus.Count > 0) { treeViewItem.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#F8F8F8")); EachTree(menuItem, treeViewItem); } } } catch (TimeoutException timeProblem) { strErrorMsg = timeProblem.Message + UIResources.TimeOut + timeProblem.Message; } catch (FaultException <LCFault> af) { strErrorMsg = af.Detail.Message; } catch (FaultException unknownFault) { strErrorMsg = UIResources.UnKnowFault + unknownFault.Message; } catch (CommunicationException commProblem) { strErrorMsg = UIResources.ConProblem + commProblem.Message + commProblem.StackTrace; } catch (Exception ex) { strErrorMsg = ex.Message; //AisinoMessageBox.Show(ex.Message, UIResources.MsgInfo, MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.OK); } if (strErrorMsg != string.Empty) { await DialogManager.ShowMessageAsync(this.GetMainWindow(), UIResources.MsgError, "构造菜单树失败!原因:" + strErrorMsg, MessageDialogStyle.Affirmative, null); //AisinoMessageBox.Show(strErrorMsg); } }
/// <summary> /// 转换多个实体对象成显示对象列表 /// </summary> /// <param name="sysMenus">多个系统菜单实体</param> private List<MenuDisplayModel> BuildModels(List<SysMenu> sysMenus,bool needSub=true) { List<MenuDisplayModel> menuDisplayModelList = new List<MenuDisplayModel>(); if (sysMenus != null && sysMenus.Count > 0) { foreach (SysMenu sysMenu in sysMenus) { MenuDisplayModel menuDisplayModel = BuildModel(sysMenu); if (menuDisplayModel != null) { menuDisplayModelList.Add(menuDisplayModel); } } return menuDisplayModelList; } return null; }
/// <summary> /// 加载菜单列表 /// </summary> private async void addRightTree() { string strErrorMsg = string.Empty; try { IAsyncProxy <IMenuModelService> asyncProxy = await Task.Run(() => ServiceHelper.GetMenuService()); MenuDisplayModel rootMenu = await asyncProxy.CallAsync(c => c.GetRootMenu()); RadTreeViewItem menuHeader = new RadTreeViewItem(); menuHeader.Header = rootMenu.Name; menuHeader.IsExpanded = true; this.rightmenuTree.Items.Add(menuHeader); EachTree(rootMenu, menuHeader); } catch (TimeoutException timeProblem) { strErrorMsg = timeProblem.Message + UIResources.TimeOut + timeProblem.Message; } catch (FaultException <LCFault> af) { strErrorMsg = af.Detail.Message; } catch (FaultException unknownFault) { strErrorMsg = UIResources.UnKnowFault + unknownFault.Message; } catch (CommunicationException commProblem) { strErrorMsg = UIResources.ConProblem + commProblem.Message + commProblem.StackTrace; } catch (Exception ex) { strErrorMsg = ex.Message; //AisinoMessageBox.Show(ex.Message, UIResources.MsgInfo, MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.OK); } if (strErrorMsg != string.Empty) { await DialogManager.ShowMessageAsync(this.GetMainWindow(), UIResources.MsgError, "加载菜单列表失败!原因:" + strErrorMsg, MessageDialogStyle.Affirmative, null); //AisinoMessageBox.Show(strErrorMsg); } }
private async void bindMenuList() { string strErrorMsg = string.Empty; try { this.trvMenu.Items.Clear(); this._menuAyncProxy = await Task.Run(() => ServiceHelper.GetMenuService()); MenuDisplayModel rootMenu = await _menuAyncProxy.CallAsync(c => c.GetRootMenu()); _menuHeader = new TreeViewItem(); _menuHeader.Header = rootMenu.Name; _menuHeader.IsExpanded = true; _menuHeader.Tag = rootMenu; this.trvMenu.Items.Add(_menuHeader); this.buildMenuTree(rootMenu, _menuHeader); } catch (TimeoutException timeProblem) { strErrorMsg = timeProblem.Message + UIResources.TimeOut + timeProblem.Message; } catch (FaultException <LCFault> af) { strErrorMsg = af.Detail.Message; } catch (FaultException unknownFault) { strErrorMsg = UIResources.UnKnowFault + unknownFault.Message; } catch (CommunicationException commProblem) { strErrorMsg = UIResources.ConProblem + commProblem.Message + commProblem.StackTrace; } catch (Exception ex) { strErrorMsg = ex.Message; //AisinoMessageBox.Show(ex.Message, UIResources.MsgInfo, MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.OK); } if (strErrorMsg != string.Empty) { await DialogManager.ShowMessageAsync(this.GetMainWindow(), UIResources.MsgError, "绑定菜单失败,原因:" + strErrorMsg, MessageDialogStyle.Affirmative, null); } }
/// <summary> /// 转换实体对象成显示对象 /// </summary> /// <param name="sysMenu">菜单实体对象</param> private MenuDisplayModel BuildModel(SysMenu sysMenu, bool needSub = true) { if (sysMenu == null) { return null; } else { MenuDisplayModel menuDisplayMode = new MenuDisplayModel(); menuDisplayMode.Code = sysMenu.MenuCode; menuDisplayMode.Name = sysMenu.Name; menuDisplayMode.Remark = sysMenu.Remark; if (needSub) { menuDisplayMode.SubMenus = GetSubMenus(sysMenu.MenuCode); } return menuDisplayMode; } }
private List<MenuDisplayModel> GetSubMenus(string menuCode) { try { if (menuCode == null || menuCode.Trim().Length == 0) { return null; } Repository<SysMenu> sysMenuDal = _unitOfWork.GetRepository<SysMenu>(); var sysMenuListTemp = sysMenuDal.Find(sm => sm.ParentCode == menuCode).Entities; List<MenuDisplayModel> menuDisplayModelList = new List<MenuDisplayModel>(); if (sysMenuListTemp != null && sysMenuListTemp.Count() > 0) { foreach (SysMenu sysMenu in sysMenuListTemp.ToList()) { MenuDisplayModel menuDisplayModel = new MenuDisplayModel(); menuDisplayModel.Code = sysMenu.MenuCode; menuDisplayModel.Name = sysMenu.Name; menuDisplayModel.Remark = sysMenu.Remark; menuDisplayModel.SubMenus = GetSubMenus(menuDisplayModel.Code); menuDisplayModelList.Add(menuDisplayModel); } } return menuDisplayModelList; } catch (RepositoryException rex) { string msg = rex.Message; string reason = rex.StackTrace; throw new FaultException<LCFault> (new LCFault(msg), reason); } catch (Exception ex) { string msg = ex.Message; string reason = ex.StackTrace; throw new FaultException<LCFault> (new LCFault(msg), reason); } }
private async void menuConvert() { string strErrorMsg = string.Empty; try { _menuAyncProxy = await Task.Run(() => ServiceHelper.GetMenuService()); _sysmenu = await _menuAyncProxy.CallAsync(c => c.GetMenuByCode(this._menuDisplayModel.Code)); MenuDisplayModel rootMenuDisplay = await _menuAyncProxy.CallAsync(c => c.GetRootMenu()); _moduleAyncProxy = await Task.Run(() => ServiceHelper.GetModuleService()); IList <ModuleDisplayModel> moduleLists = await _moduleAyncProxy.CallAsync(c => c.GetAllModules()); this.cmbModule.ItemsSource = moduleLists; List <MenuDisplayModel> menuList = new List <MenuDisplayModel>(); menuList.Add(rootMenuDisplay); this.menuCmb(rootMenuDisplay, menuList); this.cmbParent.ItemsSource = menuList; if (Om == OperationMode.AddMode) { this.cmbParent.Text = this._menuDisplayModel.Name; } if (Om == OperationMode.EditMode) { if (this._sysmenu != null && this._sysmenu.ParentCode != null) { MenuEditModel rootMenuParent = await _menuAyncProxy.CallAsync(c => c.GetMenuByCode(this._sysmenu.ParentCode)); this.cmbParent.Text = rootMenuParent.DisplayName; this.cmbMenuType.Text = this._sysmenu.Type.ToString(); this.txtMenuCode.Text = this._sysmenu.MenuCode; this.txtName.Text = this._sysmenu.Name; this.txtDisplayName.Text = this._sysmenu.DisplayName; this.txtMenuRemark.Text = this._sysmenu.Remark; this.txtShowIndex.Value = this._sysmenu.ShowIndex; if (_sysmenu.ParentModule != null && _sysmenu.ParentFunction != null) { _moduleAyncProxy = await Task.Run(() => ServiceHelper.GetModuleService()); ModuleEditModel moduleEditModel = await _moduleAyncProxy.CallAsync(c => c.GetModuleByCode(_sysmenu.ParentModule.ModuleCode)); this.cmbModule.Text = _sysmenu.ParentModule.Name; this.cmbFunction.ItemsSource = moduleEditModel.SysFunctions; this.cmbFunction.Text = _sysmenu.ParentFunction.Name; } if (_sysmenu.Layer < 2) { this.cmbModule.IsEnabled = false; this.cmbFunction.IsEnabled = false; } } else { this.cmbModule.IsEnabled = false; this.cmbFunction.IsEnabled = false; this.cmbParent.IsEnabled = false; this.txtMenuCode.Text = this._menuDisplayModel.Code; this.txtName.Text = this._menuDisplayModel.Name; } } } catch (TimeoutException timeProblem) { strErrorMsg = timeProblem.Message + UIResources.TimeOut + timeProblem.Message; } catch (FaultException <LCFault> af) { strErrorMsg = af.Detail.Message; } catch (FaultException unknownFault) { strErrorMsg = UIResources.UnKnowFault + unknownFault.Message; } catch (CommunicationException commProblem) { strErrorMsg = UIResources.ConProblem + commProblem.Message + commProblem.StackTrace; } if (strErrorMsg != string.Empty) { await DialogManager.ShowMessageAsync(this, UIResources.MsgError, "异常原因:" + strErrorMsg, MessageDialogStyle.Affirmative, null); return; } }