Example #1
0
        public async Task <IActionResult> Get([FromQuery] long id, [FromQuery] long systemid)
        {
            ResourceShowViewModel domain = await _resourceService.GetResourceAsync(id, systemid);

            return(Ok(domain));
        }
Example #2
0
        /// <summary>
        /// 获取资源信息
        /// </summary>
        /// <param name="id"></param>
        /// <param name="systemid"></param>
        /// <returns></returns>
        public async Task <ResourceShowViewModel> GetResourceAsync(long id, long systemid)
        {
            ResourceShowViewModel model = new ResourceShowViewModel();

            //获取基本数据
            model.SysResource = await _databaseFixture.Db.SysResource.FindByIdAsync(id);

            if (model.SysResource == null)
            {
                model.SysResource = new SysResource()
                {
                    IsDel  = 0,
                    IsShow = 1,
                    Sort   = 1
                };
            }
            model.ButtonViewModels = new List <ButtonViewModel>();
            if (model.SysResource != null)
            {
                var dbbuttons = await _databaseFixture.Db.SysResource
                                .FindAllAsync(m => m.ParentId == model.SysResource.ResourceId && m.IsDel == 0 && m.IsButton == 1);

                //获取所属按钮
                var buttons = dbbuttons
                              .Select(m => new
                {
                    m.ResourceId,
                    m.ResourceName,
                    m.ButtonType
                }).ToList();
                foreach (var item in buttons)
                {
                    model.ButtonViewModels.Add(new ButtonViewModel()
                    {
                        Id          = item.ResourceId,
                        ButtonType  = item.ButtonType.Value,
                        ButtonModel = item.ButtonType.Value,
                        Name        = item.ResourceName
                    });
                }
                var btntypes = model.ButtonViewModels.Select(m => m.ButtonType).ToList();
                //添加未选择的按钮
                var btnEnums = Enum <ButtonType> .AsEnumerable().Select(m => (byte)m).ToList();

                var pushEnums = btnEnums.Where(m => !btntypes.Contains(m) && m > 0).ToList();
                foreach (var item in pushEnums)
                {
                    model.ButtonViewModels.Add(new ButtonViewModel()
                    {
                        Id          = 0,
                        ButtonModel = 0,
                        ButtonType  = item,
                        Name        = GetButtonName(item)
                    });
                }

                //父节点选择菜单下拉
                var dbpmenus = await _databaseFixture.Db.SysResource.FindAllAsync(m => m.ResourceId != model.SysResource.ResourceId && m.IsDel == 0 && m.IsShow == 1 && m.SystemId == systemid);

                model.ParentMenus = dbpmenus
                                    .Select(m => new ZTree()
                {
                    id       = m.ResourceId.ToString(),
                    name     = m.ResourceName,
                    pId      = m.ParentId,
                    @checked = model.SysResource.ParentId == m.ResourceId
                }).ToList();
            }
            else
            {
                model.SysResource      = new SysResource();
                model.ButtonViewModels = ButtonInit();
                var dbpmenus = await _databaseFixture.Db.SysResource.FindAllAsync(m => m.IsDel == 0 && m.IsShow == 1 && m.SystemId == systemid);

                model.ParentMenus = dbpmenus
                                    .Select(m => new ZTree()
                {
                    id   = m.ResourceId.ToString(),
                    name = m.ResourceName,
                    pId  = m.ParentId
                }).ToList();
            }
            return(model);
        }