private SysMenuJsonViewModel ToJsonViewModel(SysMenuViewModel model) { if (model == null) { return(null); } var json = new SysMenuJsonViewModel() { icon = model.MenuIcon, index = model.Id, route = model.RouteUrl, title = model.MenuName, items = null }; if (model.Children != null && model.Children.Any()) { json.items = new List <SysMenuJsonViewModel>(); foreach (var child in model.Children) { json.items.Add(ToJsonViewModel(child)); } } return(json); }
private object GetTreeMenus(SysMenuViewModel viewModel, string parentId = null) { if (viewModel.Children.Any()) { return(new { text = " " + viewModel.MenuName, icon = viewModel.MenuIcon, tags = viewModel.Id.ToString(), nodes = viewModel.Children.Select(x => GetTreeMenus(x, parentId)), state = new { expanded = false, selected = viewModel.Id == parentId } }); } return(new { text = " " + viewModel.MenuName, icon = viewModel.MenuIcon, tags = viewModel.Id.ToString(), state = new { selected = viewModel.Id == parentId } }); }
public async Task <ActionResult> RuajParentin([Bind(Include = "ID,PershkrimiP,HtmlKlasaP,RoliIDP,RenditjaP")] SysMenuViewModel modeli) { if (ModelState.IsValid) { var user = await GetUser(); try { SYSMENU_PARENT model = new SYSMENU_PARENT(); model.ID = modeli.IDP; model.Pershkrimi = modeli.PershkrimiP; model.Renditja = modeli.RenditjaP; model.RoleID = modeli.RoliIDP; model.HtmlClass = modeli.HtmlKlasaP; db.SYSMENU_PARENT.Add(model); await db.SaveChangesAsync(); return(Json(new { result = "Redirect", url = Url.Action("CreateAsync", "SYSMENU") })); } catch (Exception ex) { return(Json("Gabim " + ex.Message, JsonRequestBehavior.DenyGet)); } } return(Json(new { result = "Redirect", url = Url.Action("CreateAsync", "SYSMENU") })); }
//获取组织内的所有菜单 public SysMenuListViewModel GetAllMenu(string token, string account) { SysMenuListViewModel sml = new SysMenuListViewModel(); bool bRet = new UserService().IsAdmin(account, token); if (!bRet) { sml.Success = false; sml.Message = "用户没有权限查看菜单"; return(sml); } List <SysMenuModel> list = _sm.FindMenu(token); foreach (var item in list) { SysMenuViewModel smvm = new SysMenuViewModel() { Id = item.Id, Icon = item.Icon, MenuType = (int)item.MenuType, Name = item.Name, ParentId = item.ParentId, Remarks = item.Remarks, Url = item.Url }; sml.list.Add(smvm); } sml.Success = true; sml.Message = "获取菜单成功"; return(sml); }
// GET: SYSMENU public async Task <ActionResult> Index() { var user = await GetUser(); SysMenuViewModel model = new SysMenuViewModel(); List <SYSMENU_PARENT> lista = await db.SYSMENU_PARENT.OrderByDescending(q => q.ID).ToListAsync(); List <SYSMENU> listam = await db.SYSMENUs.OrderByDescending(q => q.ID).ToListAsync(); model.sys = listam; return(View(model)); }
//添加菜单 public ResponseData AddMenu(SysMenuViewModel smvm) { ResponseData rd = new ResponseData(); //验证用户权限(只有管理员才能添加菜单) bool bRet = new UserService().IsAdmin(smvm.Account, smvm.Token); if (!bRet) { rd.Success = false; rd.Message = "该用户没有添加菜单的权限"; return(rd); } //验证菜单编号和菜单名称是否重合 var mm = _sm.FindByName(smvm.Name, smvm.Token); if (mm != null) { rd.Success = false; rd.Message = "此菜单已添加"; return(rd); } try { SysMenuModel smm = new SysMenuModel() { Id = Guid.NewGuid().ToString("N"), Name = smvm.Name, MenuType = (MenuTypes)smvm.MenuType, Icon = smvm.Icon, Url = smvm.Url, Token = smvm.Token, Remarks = smvm.Remarks }; if (smvm.ParentId == "" || null == smvm.ParentId) { smm.ParentId = null; } else { smm.ParentId = smvm.ParentId; } _sm.Add(smm); rd.Success = true; rd.Message = "添加菜单成功"; } catch (Exception ex) { rd.Success = false; rd.Message = "添加菜单失败" + ex.Message; } return(rd); }
private IList <SysMenuViewModel> GetTreeMenu(Expression <Func <SysMenu, bool> > where) { var reslut = new List <SysMenuViewModel>(); var children = Get(where).OrderBy(m => m.SortIndex).ToList(); foreach (var child in children) { var tmp = new SysMenuViewModel(); tmp = TinyMapper.Map(child, tmp); tmp.Children = GetTreeMenu(m => m.ParentId == tmp.Id && m.Activable); reslut.Add(tmp); } return(reslut); }
private IList <SysMenuViewModel> GetHomeTreeMenu(Expression <Func <SysMenu, bool> > where) { var reslut = new List <SysMenuViewModel>(); var children = Get(where).OrderBy(m => m.SortIndex).ToList(); foreach (var child in children) { var tmp = new SysMenuViewModel(); tmp = TinyMapper.Map(child, tmp); tmp.RouteUrl = ConfigHelper.GetConfigurationValue("appSettings:AdminDomain") + tmp.RouteUrl; tmp.Children = GetHomeTreeMenu(m => m.ParentId == tmp.Id && m.Activable && m.Visiable); reslut.Add(tmp); } return(reslut); }
// GET: SYSMENU/Create public async Task <ActionResult> CreateAsync() { var user = await GetUser(); SysMenuViewModel model = new SysMenuViewModel(); var allRoles = (new ApplicationDbContext()).Roles.OrderBy(q => q.Name).ToList().Select(q => new SelectListItem { Value = q.Id, Text = q.Name }).ToList(); ViewBag.RoleID = allRoles; ViewBag.RoliIDP = allRoles; ViewBag.ParentID = await LoadSysMenuParent(null); return(View(model)); }
public async Task <ActionResult> RuajMenu([Bind(Include = "ID,ParentID,Pershkrimi,RoleID,HtmlClass,RoleName,Renditja,ActionName,Controller")] SysMenuViewModel modeli) { try { // TODO: Add insert logic here if (ModelState.IsValid) { var user = await GetUser(); try { SYSMENU model = new SYSMENU(); model.ID = modeli.ID; model.ParentID = modeli.ParentID; model.Pershkrimi = modeli.Pershkrimi; model.RoleID = modeli.RoleID; model.HtmlClass = modeli.HtmlClass; model.RoleName = "Administrator"; model.Renditja = modeli.Renditja; model.OpParamName = null; model.OpParamValue = null; model.styleid = null; model.ActionName = modeli.ActionName; model.Controller = modeli.Controller; db.SYSMENUs.Add(model); await db.SaveChangesAsync(); return(Json(Url.Action("Index", "SYSMENU"))); } catch (Exception ex) { ((System.Data.Entity.Validation.DbEntityValidationException)ex).EntityValidationErrors.ToString(); return(Json("Gabim " + ex.Message, JsonRequestBehavior.DenyGet)); } } else { return(Json(Url.Action("Index", "SYSMENU"))); } } catch { return(View()); } }
public void IsAdminEnabledTest() { #region Arrange const string firstName = "FirstName"; const string lastName = "LastName"; const string fullName = firstName + " " + lastName; var identityMock = Mock.Create<IMQ1Identity>(); var principalMock = Mock.Create<IPrincipal>(); Mock.Arrange(() => principalMock.Identity).Returns(identityMock); Mock.Arrange(() => identityMock.FirstName).Returns(firstName); Mock.Arrange(() => identityMock.LastName).Returns(lastName); Mock.Arrange(() => identityMock.FullName).Returns(fullName); Mock.Arrange(() => identityMock.IsAuthenticated).Returns(true); ApplicationContext.User = principalMock; var vm = new SysMenuViewModel(); vm.HandleEvent(new DashboardInitializationCompletedEvent()); #endregion Arrange // Act SwitchToNonAdmin(vm, identityMock); var actual = vm.IsAdminEnabled; // Assert Assert.IsNotNull(actual); Assert.IsFalse((bool)actual); // Act SwitchToAdmin(vm, identityMock); actual = vm.IsAdminEnabled; // Assert Assert.IsNotNull(actual); Assert.IsTrue((bool)actual); // Act UnAuthenticate(vm, identityMock); actual = vm.IsAdminEnabled; // Assert Assert.IsNull(actual); }
public List <SysMenuViewModel> GetMenus() { var menuViewModel = new List <SysMenuViewModel>(); var parentMenus = GetList(Predicates.Field <SysMenu>(f => f.ParentId, Operator.Eq, -1)); if (parentMenus != null) { foreach (var menu in parentMenus) { SysMenuViewModel menuViewModelItem = new SysMenuViewModel(); menuViewModelItem.Name = menu.Name; menuViewModelItem.Icon = menu.Icon; menuViewModelItem.Url = menu.Url; menuViewModel.Add(menuViewModelItem); GetChildMenus(menu.Id, menuViewModelItem); } } return(menuViewModel); }
public List <SysMenuViewModel> GetTreeMenus() { var menuViewModel = new List <SysMenuViewModel>(); var parentMenus = GetList(); if (parentMenus != null) { foreach (var menu in parentMenus) { SysMenuViewModel menuViewModelItem = new SysMenuViewModel(); menuViewModelItem.Id = menu.Id; menuViewModelItem.Name = menu.Name; menuViewModelItem.Icon = menu.Icon; menuViewModelItem.Url = menu.Url; menuViewModelItem.ParentId = menu.ParentId; menuViewModelItem.Open = true; menuViewModel.Add(menuViewModelItem); } } return(menuViewModel); }
private void GetChildMenus(int parentId, SysMenuViewModel menuViewModelItem) { var childMenus = GetList(Predicates.Field <SysMenu>(f => f.ParentId, Operator.Eq, parentId)); if (childMenus != null) { foreach (var childMenu in childMenus) { SysMenuViewModel childMenuViewModelItem = new SysMenuViewModel(); childMenuViewModelItem.Name = childMenu.Name; childMenuViewModelItem.Icon = childMenu.Icon; childMenuViewModelItem.Url = childMenu.Url; if (menuViewModelItem.SubMenus == null) { menuViewModelItem.SubMenus = new List <SysMenuViewModel>(); } menuViewModelItem.SubMenus.Add(childMenuViewModelItem); GetChildMenus(childMenu.Id, childMenuViewModelItem); } } }
public void AdminMenuItemsShortcutsHasToBeEnabledForAdminUsers() { #region Arrange var navigationItems = new List<MockNavigationItemInfo> { new MockNavigationItemInfo(1, "abc"), new MockNavigationItemInfo(2, "bcd"), new MockNavigationItemInfo(3, "cde"), }; var groupInfo = new MockNavigationGroupInfo(navigationItems, Constants.AdminMenu); var navItems = new MockNavigationGroupList(new[] { groupInfo }); var vm = new SysMenuViewModel(); vm.TheShell = Mock.Create<MainViewModel>(Behavior.Loose); vm.HandleEvent(new DashboardInitializationCompletedEvent()); vm.IsAdminEnabled = true; Mock.Arrange(() => Utils.CurrentUserAuthenticated).Returns(true); Mock.Arrange(() => Utils.CurrentUserHasAdministratorRights).Returns(true); vm.MenuItemExtensions = new ExportFactory<ViewModelBase, IExportAsSystemMenuItemExtensionMetadata>[0]; vm.SetupAdminMenu(navItems); #endregion Arrange Assert.IsNotNull(vm.AdminMenuItems[0].Shortcut); Assert.IsNotNull(vm.AdminMenuItems[1].Shortcut); Assert.IsNotNull(vm.AdminMenuItems[2].Shortcut); }
/// <summary> /// Initializes a new instance of the <see cref="MockMainViewModel"/> class. /// </summary> public MockMainViewModel() { //Windows var window1 = new BaseTopLevelWindow(); var window2 = new BaseTopLevelWindow(); //NavigationSideBarVM var sideBar = new StubNavigationSidebarViewModel(); //SystemMenu var systemMenu = new SysMenuViewModel(); var mockCommand = Mock.Create<ICommand>(); systemMenu.AdminMenuItems = new ObservableCollection<ITitledCommand>(new List<ITitledCommand> { new TitledCommand(mockCommand, string.Empty, string.Empty, null) }); this.NavigationSidebarVM = sideBar; this.SysMenuVM = systemMenu; this.Windows.Add(window1); this.Windows.Add(window2); }
private static void UnAuthenticate(SysMenuViewModel vm, IMQ1Identity identityMock) { Mock.Arrange(() => identityMock.IsAuthenticated).Returns(false); Mock.Arrange(() => identityMock.IsAdmin).Returns(false); vm.IsAdminEnabled = false; }
private static void SwitchToAdmin(SysMenuViewModel vm, IMQ1Identity identityMock) { Mock.Arrange(() => identityMock.IsAuthenticated).Returns(true); Mock.Arrange(() => identityMock.IsAdmin).Returns(true); vm.IsAdminEnabled = true; }
public void AdminMenuItemsShortcutsHasToBeEnabledForNonAdminUsersIfAddedToNavigation() { #region Arrange var navigationItems = new List<MockNavigationItemInfo> { new MockNavigationItemInfo(1, "abc"), new MockNavigationItemInfo(2, "bcd"), new MockNavigationItemInfo(3, "cde"), }; var groupInfo = new MockNavigationGroupInfo(navigationItems, Constants.AdminMenu); var navigationItems1 = new List<MockNavigationItemInfo> { new MockNavigationItemInfo(2, "bcd"), }; var groupInfo1 = new MockNavigationGroupInfo(navigationItems1, "test"); var navItems = new MockNavigationGroupList(new[] { groupInfo, groupInfo1 }); var vm = new SysMenuViewModel(); vm.TheShell = Mock.Create<MainViewModel>(Behavior.Loose); vm.IsAdminEnabled = false; vm.MenuItemExtensions = new ExportFactory<ViewModelBase, IExportAsSystemMenuItemExtensionMetadata>[0]; vm.SetupAdminMenu(navItems); #endregion Arrange Assert.IsNull(vm.AdminMenuItems[0].Shortcut); Assert.IsNotNull(vm.AdminMenuItems[1].Shortcut); Assert.IsNull(vm.AdminMenuItems[2].Shortcut); }