src/KopSoftWms/ViewComponents/MenuViewComponent.cs

(完整代码) 1KB

using IServices;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using System.Linq;
using System.Security.Claims;
using System.Threading.Tasks;
using YL.Core.Dto;
using YL.Utils.Extensions;

namespace KopSoftWms.ViewComponents
{
    public class MenuViewComponent : ViewComponent
    {
        private readonly ISys_roleServices _roleServices;
        private readonly IHttpContextAccessor _httpContext;

        public MenuViewComponent(ISys_roleServices roleServices,
            IHttpContextAccessor httpContext)
        {
            _roleServices = roleServices;
            _httpContext = httpContext;
        }

        //public IViewComponentResult Invoke()
        //{
        //    var claims = _httpContext.HttpContext.User.Claims;
        //    var roleId = claims.SingleOrDefault(c => c.Type == ClaimTypes.Role).Value.ToInt64();
        //    var menu = _roleServices.GetMenu(roleId);
        //    return View(menu);
        //}

        public async Task<IViewComponentResult> InvokeAsync()
        {
            var claims = _httpContext.HttpContext.User.Claims;
            var roleId = claims.SingleOrDefault(c => c.Type == ClaimTypes.Role).Value.ToInt64();
            var menus = await GetItemsAsync(roleId);
            //var sd = await _roleServices.GetMenu(roleId).ToListAsync();
            return View(menus);
        }

        private Task<List<PermissionMenu>> GetItemsAsync(long roleId)
        {
            Task<List<PermissionMenu>> t1 = Task.Factory.StartNew(() => _roleServices.GetMenu(roleId));
            return t1;
        }
    }
}

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。