Exemplo n.º 1
0
        public ActionResult SiteMap()
        {
            //get menu active by url request
            //var rootMenuActive = TempData["RootMenuActive"].MapTo<Data.Entities.Menu>();
            var rootMenuActive = TempData["RootMenuActive"].MapTo <Services.Responses.Menu.GetSiteMenuActiveResponse>();
            var userService    = ObjectFactory.Container.GetInstance <IUserService>();
            var AuthUser       = userService.GetUserByName(new GetUserByNameRequest {
                Name = HttpContext.User.Identity.Name
            });
            var menus = new GetSiteMenusResponse();

            if (AuthUser.IsSuccess)
            {
                var role = AuthUser.Role;
                menus = _menuService.GetSiteMenus(new GetSiteMenusRequest()
                {
                    IncludeChildren = true, RoleId = role.Id
                });
                menus.RootMenuIdActive = rootMenuActive.Id;
                menus.SelectedMenu     = rootMenuActive.SelectedMenu.MapTo <Services.Responses.Menu.GetSiteMenusResponse.Menu>();
            }



            return(PartialView("_SiteMap", menus));
        }
Exemplo n.º 2
0
        public GetSiteMenusResponse GetSiteMenus(GetSiteMenusRequest request)
        {
            var response = new GetSiteMenusResponse();
            var menus    = new List <Data.Entities.Menu>();

            if (request.ParentId != null)
            {
                menus = DataContext.Menus.Where(x => x.IsActive == true && x.ParentId == request.ParentId && x.RoleGroups.Select(y => y.Id).Contains(request.RoleId)).OrderBy(x => x.Order).ToList();
            }
            else
            {
                menus = DataContext.Menus.Where(x => x.IsActive == true && x.ParentId == null && x.RoleGroups.Select(y => y.Id).Contains(request.RoleId) || x.ParentId == 0 && x.RoleGroups.Select(y => y.Id).Contains(request.RoleId)).OrderBy(x => x.Order).ToList();
            }

            if (request.IncludeChildren)
            {
                var logout = new Data.Entities.Menu
                {
                    Name     = "Logout",
                    IsActive = true,
                    Url      = "/Account/Logoff",
                    Parent   = null,
                    Icon     = "fa-sign-out"
                };
                menus.Add(logout);

                //looping to get the children, we dont use Include because only include 1st level child menus
                foreach (var menu in menus)
                {
                    menu.Menus = this._GetMenuChildren(menu.Id, request.RoleId);
                    //if (menu.Name == "Setting" && menu.IsRoot == true) {
                    //    menu.Menus.Add(logout);
                    //}
                }
            }


            response.Menus = menus.MapTo <GetSiteMenusResponse.Menu>();
            ////set root menu active / selected
            ////set root menu active / selected
            //if (request.MenuId == null || request.MenuId == 0)
            //{
            //    response.MenuIdActive = DataContext.Menus.Where(x => x.ParentId == null || x.ParentId == 0).Select(x => x.Id).First();
            //}
            //else
            //{

            //}

            return(response);
        }