Esempio n. 1
0
        /// <summary>
        /// 获取显示在菜单列表上数据
        /// </summary>
        /// <returns></returns>
        public async Task <IList <SystemMenuGetMenuByParentIdOutput> > GetMenuByParentId(SystemMenuGetMenuByParentIdInput input)
        {
            var menus = (await GetAllEnumerableAsync()).ToList();
            IList <SystemMenuGetMenuByParentIdOutput> systemMenus = (await _menuRepository.GetMenuByParentId(input)).ToList();

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