Esempio n. 1
0
        /// <summary>
        /// 获取菜单权限   待优化代码
        /// </summary>
        /// <param name="menuId"></param>
        /// <returns></returns>
        public async Task <MessageModel <List <SysMenuPowerGroupVM> > > GetMenuPowerGroups(string menuId)
        {
            if (string.IsNullOrWhiteSpace(menuId))
            {
                return(MessageModel <List <SysMenuPowerGroupVM> > .Fail("未传入菜单ID"));
            }

            //查询菜单是否存在
            var sysMenu = await _sysMenuRepository.QueryById(menuId);

            if (sysMenu != null && sysMenu.Status != 2)
            {
                //查询菜单的权限组
                var sysMenuPowerGroups = await _dal.Query(d => d.SysMenuID == menuId && d.Status == 1);

                //var resultR=from sysMenuPowersG in sysMenuPowerGroups.sys


                var arrayPowerGroups = sysMenuPowerGroups.Select(s => s.SysPowerGroupID).ToArray();

                var sysPowers = await _sysPowerRepository.Query(d => (arrayPowerGroups).Contains(d.SysPowerGroupID) && d.Status == 1);

                var returnMenuPowerGroupsVM = new List <SysMenuPowerGroupVM>();
                foreach (var item in sysMenuPowerGroups)
                {
                    //var sysMenuPowerGroupVM = new SysMenuPowerGroupVM();

                    var sysMenuPowerGroupVM = new SysMenuPowerGroupVM()
                    {
                        ID     = item.ID,
                        Status = item.Status,

                        CreateID   = item.CreateID,
                        CreateTime = item.CreateTime,
                        Creator    = item.Creator,

                        SysMenuID       = item.SysMenuID,
                        SysPowerGroupID = item.SysPowerGroupID
                    };
                    //mapper 有错误,我也不知道为啥
                    //try
                    //{
                    //    var source = new Source<SysMenuPowerGroup> { Value = item };
                    //    var destination = _mapper.Map<Destination<SysMenuPowerGroupVM>>(source);
                    //    sysMenuPowerGroupVM = destination.Value;
                    //}
                    //catch (Exception ex)
                    //{

                    //    throw;
                    //}


                    //sysMenuPowerGroupVM.SysMenu = sysMenu;
                    sysMenuPowerGroupVM.SysPowers = sysPowers.Where(d => d.SysPowerGroupID == item.SysPowerGroupID).ToList();

                    sysMenuPowerGroupVM.SysPowerGroup = await _sysPowerGroupRepository.QueryById(item.SysPowerGroupID);

                    returnMenuPowerGroupsVM.Add(sysMenuPowerGroupVM);
                }

                return(MessageModel <List <SysMenuPowerGroupVM> > .Success(returnMenuPowerGroupsVM));
            }

            return(MessageModel <List <SysMenuPowerGroupVM> > .Fail("菜单已不存在"));
        }