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
         }
     });
 }
Ejemplo n.º 3
0
        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") }));
        }
Ejemplo n.º 4
0
        //获取组织内的所有菜单
        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);
        }
Ejemplo n.º 5
0
        // 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));
        }
Ejemplo n.º 6
0
        //添加菜单
        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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        // 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));
        }
Ejemplo n.º 10
0
        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());
            }
        }
Ejemplo n.º 11
0
        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);
        }
Ejemplo n.º 12
0
        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);
        }
Ejemplo n.º 13
0
        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);
        }
Ejemplo n.º 14
0
        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);
                }
            }
        }
Ejemplo n.º 15
0
        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);
        }
Ejemplo n.º 16
0
        /// <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);
        }
Ejemplo n.º 17
0
 private static void UnAuthenticate(SysMenuViewModel vm, IMQ1Identity identityMock)
 {
     Mock.Arrange(() => identityMock.IsAuthenticated).Returns(false);
     Mock.Arrange(() => identityMock.IsAdmin).Returns(false);
     vm.IsAdminEnabled = false;
 }
Ejemplo n.º 18
0
 private static void SwitchToAdmin(SysMenuViewModel vm, IMQ1Identity identityMock)
 {
     Mock.Arrange(() => identityMock.IsAuthenticated).Returns(true);
     Mock.Arrange(() => identityMock.IsAdmin).Returns(true);
     vm.IsAdminEnabled = true;
 }
Ejemplo n.º 19
0
        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);
        }