public async Task <IViewComponentResult> InvokeAsync() { var roles = ((ClaimsPrincipal)User).GetSpecificClaim("Roles"); List <FunctionViewModel> functions; if (roles.Split(";").Contains(CommonConstants.AppRole.AdminRole)) { functions = await _functionService.GetAll(string.Empty); } else { var listRole = roles.Split(";"); var listfunctions = await _functionService.GetAllFunctionByRole(listRole); functions = listfunctions.Select(x => new FunctionViewModel() { Id = x.Id, Name = x.Name, IconCss = x.IconCss, ParentId = x.ParentId, SortOrder = x.SortOrder, Status = x.Status, URL = x.URL }).ToList(); } return(View(functions)); }