Exemplo n.º 1
0
        /// <summary>
        ///     根据菜单Id获取数据权限规则
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task <IEnumerable <SystemDataOutput> > GetDataByMenuId(SystemDataGetDataByMenuIdInput input)
        {
            var datas = (await _dataRepository.GetDataByMenuId(input)).ToList();
            var menus = (await _menuRepository.FindAllAsync()).ToList();

            foreach (var item in datas)
            {
                var menu = menus.FirstOrDefault(w => w.MenuId == item.MenuId);
                if (menu != null && !menu.ParentIds.IsNullOrEmpty())
                {
                    foreach (var parent in menu.ParentIds.Split(','))
                    {
                        //查找上级
                        var dicinfo = menus.FirstOrDefault(w => w.MenuId.ToString() == parent);
                        if (dicinfo != null)
                        {
                            item.MenuNames += dicinfo.Name + ">";
                        }
                    }
                    if (!item.MenuNames.IsNullOrEmpty())
                    {
                        item.MenuNames = item.MenuNames.TrimEnd('>');
                    }
                }
            }
            return(datas);
        }
        /// <summary>
        ///     根据菜单获取功能项信息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task <IEnumerable <SystemMenuButtonOutput> > GetMenuButtonByMenuId(SystemMenuGetMenuButtonByMenuIdInput input)
        {
            var functions = (await _functionRepository.GetMenuButtonByMenuId(input)).ToList();
            var menus     = (await _menuRepository.FindAllAsync()).ToList();

            foreach (var item in functions)
            {
                var menu = menus.FirstOrDefault(w => w.MenuId == item.MenuId);
                if (menu != null && !menu.ParentIds.IsNullOrEmpty())
                {
                    foreach (var parent in menu.ParentIds.Split(','))
                    {
                        //查找上级
                        var dicinfo = menus.FirstOrDefault(w => w.MenuId.ToString() == parent);
                        if (dicinfo != null)
                        {
                            item.MenuNames += dicinfo.Name + ">";
                        }
                    }
                    if (!item.MenuNames.IsNullOrEmpty())
                    {
                        item.MenuNames = item.MenuNames.TrimEnd('>');
                    }
                }
            }
            return(functions.OrderBy(o => o.MenuNames).ThenBy(b => b.OrderNo).ToList());
        }