Ejemplo n.º 1
0
        public async Task DeleteWebMenuAsync([Required(ErrorMessage = "唯一标识不能为空")] Guid id)
        {
            List <WebMenu> allWebMenus = await _webMenuRepository.FindAsync(m => true);

            WebMenu webMenuFromDB = allWebMenus.FirstOrDefault(m => m.ID == id);

            if (webMenuFromDB == null)
            {
                throw new InvalidOperationException("网页菜单权限不存在");
            }
            ICollection <WebMenu> allChild = GetAllChild(allWebMenus, id);

            foreach (WebMenu menuAuthority in allChild)
            {
                _authorityUnitOfWork.RegisterDelete(menuAuthority);
            }
            _authorityUnitOfWork.RegisterDelete(webMenuFromDB);
            await _authorityUnitOfWork.CommitAsync();
        }
Ejemplo n.º 2
0
        public async Task <RoleDTO> GetRoleInfoAsync([Required(ErrorMessage = "唯一标识不能为空")] Guid id)
        {
            Role roleFromDB = await _roleRepository.FirstOrDefaultAsync(id);

            if (roleFromDB == null)
            {
                throw new InvalidOperationException("角色不存在");
            }
            var            result   = _mapper.Map <RoleDTO>(roleFromDB);
            List <WebMenu> webMenus = await _webMenuRepository.FindAsync(m => m.SubSystemID == roleFromDB.SubSystemID);

            List <RoleWebMenuMap> roleWebMenuMaps = await _roleWebMenuRepository.FindAsync(m => m.RoleID == id);

            Guid[] roleHasWebMenuID = roleWebMenuMaps.Select(m => m.WebMenuID).ToArray();
            result.WebMenuTreeList = TreeHelper.GetTreeList <RoleWebMenuTreeDTO, WebMenu, Guid>(webMenus, null,
                                                                                                webMenu =>
            {
                var temp   = webMenu.CopyProperties <RoleWebMenuTreeDTO>();
                temp.Owned = roleHasWebMenuID.Contains(webMenu.ID);
                return(temp);
            });
            return(result);
        }