Former-commit-id: 2338396d4a23fbbfab95786e63ca9122664f3d0a
Former-commit-id: ac1720bb788b39f0c595fc8a6b9c355669dcb1d6
1.0
wanggang 5 years ago
parent a3fca45e20
commit a333ce7737

@ -4,13 +4,14 @@ using System.ComponentModel.DataAnnotations;
namespace Application.Domain.Entities
{
[Display(Name = "模块")]
[Display(Name = "模块", Order = 30)]
[Scope(ScopeAttribute.PlatformAll)]
[Module("基础设置", "Admin")]
public class AppModule : BaseEntity
{
[Required]
public string Name { get; set; }
public string Number { get; set; }
public string Url { get; set; }
public int Order { get; set; }

@ -4,15 +4,17 @@ using System.ComponentModel.DataAnnotations;
namespace Application.Domain.Entities
{
[Display(Name = "字典")]
[Display(Name = "字典", Order = 10)]
[Scope(ScopeAttribute.PlatformAll)]
[Module("基础设置", "Admin")]
public class Dictionary:BaseEntity
public class Dictionary : BaseEntity
{
[Required]
public string Name { get; set; }
[Required]
public string Key { get; set; }
public List<DictionaryItem> Items { get; set; }
}
}

@ -4,15 +4,17 @@ using System.ComponentModel.DataAnnotations;
namespace Application.Domain.Entities
{
[Display(Name = "字典项")]
[Display(Name = "字典项", Order = 11)]
[Scope(ScopeAttribute.PlatformAll)]
[Module("基础设置", "Admin")]
public class DictionaryItem:BaseEntity
public class DictionaryItem : BaseEntity
{
[Required]
public string Name { get; set; }
[Required]
public string Value { get; set; }
public int Order { get; set; }
public Guid DictionaryId { get; set; }
public Dictionary Dictionary { get; set; }

@ -19,4 +19,4 @@ namespace Application.Domain.Entities
public List<IoTParameter> IoTParameters { get; set; } = new List<IoTParameter>();
public List<IoTCommand> IoTCommands { get; set; } = new List<IoTCommand>();
}
}
}

@ -54,4 +54,4 @@ namespace Application.Domain.Entities
public List<IoTSceneIoTCommand> IoTSceneIoTCommands { get; set; } = new List<IoTSceneIoTCommand>();
}
}
}

@ -22,7 +22,8 @@ namespace Application.Domain.Entities
public double? DoubleValue { get; set; }
public DateTime? DateTimeValue { get; set; }
[Display(Name="枚举候选值列表")]
[Display(Name = "枚举候选值列表")]
public string EnumValues { get; set; }
[Display(Name = "名称")]
@ -57,4 +58,4 @@ namespace Application.Domain.Entities
public List<IoTTigger> IoTTiggers { get; set; } = new List<IoTTigger>();
}
}
}

@ -4,11 +4,13 @@ namespace Application.Domain.Entities
{
public enum IoTDataType
{
[Display(Name="设备信息")]
Info=10,
[Display(Name = "设备信息")]
Info = 10,
[Display(Name = "设备数据")]
Data=20,
Data = 20,
[Display(Name = "设备事件")]
Event=30
Event = 30
}
}

@ -2,7 +2,6 @@ using Infrastructure.Domain;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
namespace Application.Domain.Entities
{
@ -72,4 +71,4 @@ namespace Application.Domain.Entities
[Display(Name = "命令")]
public List<IoTCommand> IoTCommands { get; set; } = new List<IoTCommand>();
}
}
}

@ -25,6 +25,7 @@ namespace Application.Domain.Entities
[Display(Name = "版本")]
public string Version { get; set; }
public string Password { get; set; }
[Display(Name = "序号")]
@ -39,4 +40,4 @@ namespace Application.Domain.Entities
public List<IoTDevice> Devices { get; set; } = new List<IoTDevice>();
}
}
}

@ -6,13 +6,17 @@ namespace Application.Domain.Entities
{
[Display(Name = ">")]
GreaterThan = 10,
[Display(Name = "<")]
LessThan = 20,
[Display(Name = "==")]
Equal = 30,
[Display(Name = "!=")]
NotEqual = 40,
[Display(Name = "自定义")]
Other = 50
}
}
}

@ -21,4 +21,4 @@ namespace Application.Domain.Entities
public Guid IoTApiId { get; set; }
public IoTApi IoTApi { get; set; }
}
}
}

@ -19,6 +19,7 @@ namespace Application.Domain.Entities
[Display(Name = "图标")]
public string Image { get; set; }
public string Template { get; set; }
[Display(Name = "路径")]
@ -38,4 +39,4 @@ namespace Application.Domain.Entities
public List<IoTApi> IoTApis { get; set; } = new List<IoTApi>();
}
}
}

@ -11,6 +11,7 @@ namespace Application.Domain.Entities
{
[Display(Name = "分类图标")]
public string Image { get; set; }
public List<IoTProduct> Products { get; set; } = new List<IoTProduct>();
}
}
}

@ -34,4 +34,4 @@ namespace Application.Domain.Entities
public List<IoTTigger> IoTTiggers { get; set; } = new List<IoTTigger>();
}
}
}

@ -15,4 +15,4 @@ namespace Application.Domain.Entities
public IoTScene IoTScene { get; set; }
public IoTCommand IoTCommand { get; set; }
}
}
}

@ -30,4 +30,4 @@ namespace Application.Domain.Entities
public IoTScene IoTScene { get; set; }
}
}
}

@ -20,4 +20,4 @@ namespace Application.Domain.Entities
public IoTScene IoTScene { get; set; }
}
}
}

@ -6,15 +6,20 @@ namespace Application.Domain.Entities
{
[Display(Name = "整数")]
Int = 10,
[Display(Name = "浮点数")]
Double = 20,
[Display(Name = "时间戳")]
DateTime = 30,
[Display(Name = "文本")]
String = 40,
[Display(Name = "对象")]
Object = 50,
[Display(Name = "数组")]
Array = 60
}
}
}

@ -13,4 +13,4 @@ namespace Application.Domain.Entities
public string Name { get; set; }
public string Value { get; set; }
}
}
}

@ -4,7 +4,7 @@ using System.ComponentModel.DataAnnotations;
namespace Application.Domain.Entities
{
[Display(Name = "区域")]
[Display(Name = "区域", Order = 20)]
[Scope]
[Module("平台配置", "Admin")]
public class Area : BaseTreeEntity<Area>
@ -12,4 +12,4 @@ namespace Application.Domain.Entities
public string Type { get; set; }
public List<Organ> Organs { get; set; } = new List<Organ>();
}
}
}

@ -5,7 +5,7 @@ using System.ComponentModel.DataAnnotations;
namespace Application.Domain.Entities
{
[Display(Name = "房间")]
[Display(Name = "房间", Order = 100)]
[Scope(ScopeAttribute.PlatformAll | ScopeAttribute.OrganAll)]
[Module("基础设置", "Admin")]
public class Building : BaseTreeEntity<Building>
@ -18,4 +18,4 @@ namespace Application.Domain.Entities
public List<IoTGateway> IoTGateways { get; set; } = new List<IoTGateway>();
public List<IoTScene> Scenes { get; set; } = new List<IoTScene>();
}
}
}

@ -5,7 +5,7 @@ using System.ComponentModel.DataAnnotations;
namespace Application.Domain.Entities
{
[Display(Name = "部门")]
[Display(Name = "部门", Order = 90)]
[Scope(ScopeAttribute.PlatformAll | ScopeAttribute.OrganAll)]
[Module("基础设置", "Admin")]
public class Department : BaseTreeEntity<Department>
@ -16,4 +16,4 @@ namespace Application.Domain.Entities
public List<DepartmentUser> DepartmentUsers { get; set; } = new List<DepartmentUser>();
public List<Job> Jobs { get; set; } = new List<Job>();
}
}
}

@ -4,7 +4,7 @@ using System.ComponentModel.DataAnnotations;
namespace Application.Domain.Entities
{
[Display(Name = "部门用户")]
[Display(Name = "部门用户", Order = 93)]
[Scope(ScopeAttribute.PlatformAll | ScopeAttribute.OrganAll | ScopeType.UserRead | ScopeType.UserEdit)]
[Module("基础设置", "Admin")]
[ManyToMany]
@ -19,4 +19,4 @@ namespace Application.Domain.Entities
public Department Department { get; set; }
public Job Job { get; set; }
}
}
}

@ -5,7 +5,7 @@ using System.ComponentModel.DataAnnotations;
namespace Application.Domain.Entities
{
[Display(Name = "职位")]
[Display(Name = "职位", Order = 91)]
[Module("基础设置", "Admin")]
public class Job : BaseEntity
{
@ -17,4 +17,4 @@ namespace Application.Domain.Entities
public Department Department { get; set; }
public List<DepartmentUser> DepartmentUsers { get; set; } = new List<DepartmentUser>();
}
}
}

@ -7,7 +7,7 @@ using System.ComponentModel.DataAnnotations;
namespace Application.Domain.Entities
{
[GeneratedController]
[Display(Name = "机构")]
[Display(Name = "机构", Order = 70)]
[Scope(ScopeAttribute.PlatformAll | ScopeType.OrganRead | ScopeType.OrganEdit)]
[Module("基础设置", "Admin")]
public class Organ : BaseTreeEntity<Organ>
@ -23,4 +23,4 @@ namespace Application.Domain.Entities
public List<Role> Roles { get; set; } = new List<Role>();
public List<Title> Titles { get; set; } = new List<Title>();
}
}
}

@ -5,7 +5,7 @@ using System.ComponentModel.DataAnnotations;
namespace Application.Domain.Entities
{
[Display(Name = "机构用户")]
[Display(Name = "机构用户", Order = 80)]
[Scope(ScopeAttribute.PlatformAll | ScopeAttribute.OrganAll | ScopeType.UserRead | ScopeType.UserDelete)]
[Module("基础设置", "Admin")]
[ManyToMany]
@ -21,4 +21,4 @@ namespace Application.Domain.Entities
public List<OrganUserRole> UserRoles { get; set; } = new List<OrganUserRole>();
public List<DepartmentUser> DepartmentUsers { get; set; } = new List<DepartmentUser>();
}
}
}

@ -4,7 +4,7 @@ using System.ComponentModel.DataAnnotations;
namespace Application.Domain.Entities
{
[Display(Name = "用户角色")]
[Display(Name = "用户角色", Order = 81)]
[Scope(ScopeAttribute.PlatformAll | ScopeAttribute.OrganAll)]
[Module("基础设置", "Admin")]
[ManyToMany]
@ -16,4 +16,4 @@ namespace Application.Domain.Entities
public OrganUser OrganUser { get; set; }
public Role OrganRole { get; set; }
}
}
}

@ -5,19 +5,21 @@ using System.ComponentModel.DataAnnotations;
namespace Application.Domain.Entities
{
[Display(Name = "权限")]
[Display(Name = "权限", Order = 50)]
[Scope(ScopeAttribute.PlatformAll | ScopeAttribute.OrganAll)]
[Module("基础设置", "Admin")]
public class Permission : BaseEntity
{
[Required]
public string Name { get; set; }
[Required]
public string Number { get; set; }
public bool IsReadOnly { get; set; }
public PermissionType Type { get; set; }
public Guid? CategoryId { get; set; }
public PermissionCategory Category { get; set; }
public List<RolePermission> RolePermissions { get; set; } = new List<RolePermission>();
}
}
}

@ -5,7 +5,7 @@ using System.ComponentModel.DataAnnotations;
namespace Application.Domain.Entities
{
[Display(Name = "权限分类")]
[Display(Name = "权限分类", Order = 40)]
[Scope(ScopeAttribute.PlatformAll | ScopeAttribute.OrganAll)]
[Module("基础设置", "Admin")]
public class PermissionCategory : BaseTreeEntity<PermissionCategory>

@ -5,7 +5,7 @@ using System.ComponentModel.DataAnnotations;
namespace Application.Domain.Entities
{
[Display(Name = "角色")]
[Display(Name = "角色", Order = 80)]
[Scope(ScopeAttribute.PlatformAll | ScopeAttribute.OrganAll)]
[Module("基础设置", "Admin")]
public class Role : BaseEntity
@ -18,4 +18,4 @@ namespace Application.Domain.Entities
public List<OrganUserRole> UserRoles { get; set; } = new List<OrganUserRole>();
public List<RolePermission> RolePermissions { get; set; } = new List<RolePermission>();
}
}
}

@ -4,7 +4,7 @@ using System.ComponentModel.DataAnnotations;
namespace Application.Domain.Entities
{
[Display(Name = "角色权限")]
[Display(Name = "角色权限", Order = 81)]
[Scope(ScopeAttribute.PlatformAll | ScopeAttribute.OrganAll)]
[Module("基础设置", "Admin")]
[ManyToMany]
@ -16,4 +16,4 @@ namespace Application.Domain.Entities
public Permission Permission { get; set; }
public bool IsReadOnly { get; set; }
}
}
}

@ -10,4 +10,4 @@ namespace Application.Domain.Entities
[Display(Name = "女")]
Female
}
}
}

@ -18,4 +18,4 @@ namespace Application.Domain.Entities
public bool Disabled { get; set; }
public int Order { get; set; }
}
}
}

@ -5,7 +5,7 @@ using System.ComponentModel.DataAnnotations;
namespace Application.Domain.Entities
{
[Display(Name = "职务")]
[Display(Name = "职务", Order = 71)]
[Module("基础设置", "Admin")]
public class Title : BaseEntity
{
@ -16,4 +16,4 @@ namespace Application.Domain.Entities
public Organ Organ { get; set; }
public List<Job> Jobs { get; set; } = new List<Job>();
}
}
}

@ -5,7 +5,7 @@ using System.ComponentModel.DataAnnotations;
namespace Application.Domain.Entities
{
[Display(Name = "用户")]
[Display(Name = "用户", Order = 50)]
[Scope(ScopeAttribute.PlatformAll | ScopeType.UserRead | ScopeType.UserEdit)]
[Module("基础设置", "Admin")]
public class User : BaseEntity, IVersionEntity
@ -31,4 +31,4 @@ namespace Application.Domain.Entities
public string RowVersion { get; set; }
public List<OrganUser> OrganUsers { get; set; } = new List<OrganUser>();
}
}
}

@ -1,83 +1,51 @@
@using System.Security.Claims
<ul class="nav nav-pills nav-sidebar flex-column nav-flat" data-widget="treeview" role="menu" data-accordion="nav-icon false">
@*<li class="nav-item"><a class="@GetLinkClass("Home")" href="@Url.Action("Index","Home")"><i class="far fa-circle nav-icon"></i><p>首页</p></a></li>*@
@*平台*@
@if (User.Claims.Any(o => o.Value.Contains("-Platform-")))
{
<li class="nav-header">平台</li>
}
@if (HasPermission("Read-Platform-Setting"))
{
<li class="nav-item"><a class="@GetLinkClass("Setting")" href="@Url.Action("Index","Setting")"><i class="far fa-circle nav-icon"></i><p>配置管理</p></a></li>
}@if (HasPermission("Read-Platform-Site"))
{
<li class="nav-item"><a class="@GetLinkClass("Site")" href="@Url.Action("Index","Site")"><i class="far fa-circle nav-icon"></i><p>应用管理</p></a></li>
}
@if (HasPermission("Read-Platform-Area"))
{
<li class="nav-item"><a class="@GetLinkClass("Area")" href="@Url.Action("Index","Area")"><i class="far fa-circle nav-icon"></i><span>区域管理</span></a></li>
}
@if (HasPermission("Read-Platform-User"))
{
<li class="nav-item"><a class="@GetLinkClass("User")" href="@Url.Action("Index","User")"><i class="far fa-circle nav-icon"></i><p>用户管理</p></a></li>
}
@if (HasPermission("Read-Platform-Organ"))
{
<li class="nav-item"><a class="@GetLinkClass("Organ")" href="@Url.Action("Index","Organ")"><i class="far fa-circle nav-icon"></i><span>机构管理</span></a></li>
}
@if (HasPermission("Read-Platform-OrganUser"))
{
<li class="nav-item"><a class="@GetLinkClass("OrganUser")" href="@Url.Action("Index","OrganUser")"><i class="far fa-circle nav-icon"></i><p>机构用户</p></a></li>
}
@if (HasPermission("Read-Platform-OrganRole"))
{
<li class="nav-item"><a class="@GetLinkClass("OrganRole")" href="@Url.Action("Index","OrganRole")"><i class="far fa-circle nav-icon"></i><p>角色管理</p></a></li>
}
@if (HasPermission("Read-Platform-PermissionCategory"))
{
<li class="nav-item"><a class="@GetLinkClass("PermissionCategory")" href="@Url.Action("Index","PermissionCategory")"><i class="far fa-circle nav-icon"></i><p>权限分类</p></a></li>
}
@if (HasPermission("Read-Platform-Permission"))
{
<li class="nav-item"><a class="@GetLinkClass("Permission")" href="@Url.Action("Index","Permission")"><i class="far fa-circle nav-icon"></i><p>权限管理</p></a></li>
}
@if (HasPermission("Read-Platform-Building"))
{
<li class="nav-item"><a class="@GetLinkClass("Building")" href="@Url.Action("Index","Building")"><i class="far fa-circle nav-icon"></i><span>建筑管理</span></a></li>
}
@*机构*@
@if (User.Claims.Any(o => o.Value.Contains("-Organ-")))
{
<li class="nav-header">机构</li>
}
@if (HasPermission("Read-Organ-Organ"))
{
<li class="nav-item"><a class="@GetLinkClass("OrganOrgan")" href="@Url.Action("Index","OrganOrgan")"><i class="far fa-circle nav-icon"></i><p>机构管理</p></a></li>
}
@if (HasPermission("Read-Organ-OrganUser"))
{
<li class="nav-item"><a class="@GetLinkClass("OrganOrganUser")" href="@Url.Action("Index","OrganOrganUser")"><i class="far fa-circle nav-icon"></i><p>机构用户</p></a></li>
}
@if (HasPermission("Read-Organ-OrganRole"))
{
<li class="nav-item"><a class="@GetLinkClass("OrganOrganRole")" href="@Url.Action("Index","OrganOrganRole")"><i class="far fa-circle nav-icon"></i><p>角色管理</p></a></li>
}
@if (HasPermission("Read-Organ-Permission"))
{
<li class="nav-item"><a class="@GetLinkClass("OrganPermission")" href="@Url.Action("Index","OrganPermission")"><i class="far fa-circle nav-icon"></i><p>权限管理</p></a></li>
}
@if (HasPermission("Read-Organ-Building"))
{
<li class="nav-item"><a class="@GetLinkClass("OrganBuilding")" href="@Url.Action("Index","OrganBuilding")"><i class="far fa-circle nav-icon"></i><span>建筑管理</span></a></li>
}
@*个人*@
@if (User.Claims.Any(o => o.Value.Contains("-User-")))
{
<li class="nav-header">用户</li>
}
@if (HasPermission("Read-User-OrganUser"))
{
<li class="nav-item"><a class="@GetLinkClass("UserOrganUser")" href="@Url.Action("Index","UserOrganUser")"><i class="far fa-circle nav-icon"></i><p>机构用户</p></a></li>
}
</ul>
<li class="nav-item"><a class="@GetLinkClass("Home")" href="@Url.Action("Index","Home")"><i class="far fa-circle nav-icon"></i><p>首页</p></a></li>
@{
var modules = this.Context.Request.HttpContext.Items["modules"] as List<AppModule>;
if (modules != null)
{
var area = this.ViewContext.RouteData.Values["area"].ToString();
var module = modules.FirstOrDefault(o => o.Number == area);
if (module != null)
{
var numbers = User.Claims.Where(o => o.Type == ClaimTypes.Role).Select(o => o.Value).ToList();
var permissions = module.PermissionCategories.SelectMany(o => o.Permissions).Where(o => numbers.Contains(o.Number)).OrderBy(o => o.Category.Order);
var platformPermissions = permissions.Where(o => o.Type == PermissionType.Platform);
if (platformPermissions.Any())
{
<li class="nav-header">全部机构</li>
@foreach (var permission in platformPermissions)
{
if (permission.Number.StartsWith("Read-"))
{
<li class="nav-item">
<a href="@Url.Action("Index", permission.Category.Number, new { area = module.Number })" class="@GetLinkClass(permission.Category.Number)">
<i class="far fa-circle nav-icon"></i>
<p>@permission.Category.Name</p>
</a>
</li>
}
}
}
var organPermissions = permissions.Where(o => o.Type == PermissionType.Organ);
if (organPermissions.Any())
{
<li class="nav-header">当前机构</li>
@foreach (var permission in organPermissions)
{
if (permission.Number.StartsWith("Read-"))
{
<li class="nav-item">
<a href="@Url.Action("Index", permission.Category.Number, new { area = module.Number })" class="@GetLinkClass(permission.Category.Number)">
<i class="far fa-circle nav-icon"></i>
<p>@permission.Category.Name</p>
</a>
</li>
}
}
}
}
}
}
</ul>

@ -12,11 +12,13 @@ namespace Platform
{
public class UserService : IUserService
{
private readonly IRepository<AppModule> _appModuleRepo;
private readonly IRepository<OrganUser> _organUserRepo;
private readonly IHttpContextAccessor _httpContextAccesstor;
public UserService(IRepository<OrganUser> organUserRepo, IHttpContextAccessor httpContextAccesstor)
public UserService(IRepository<AppModule> appModuleRepo,IRepository<OrganUser> organUserRepo, IHttpContextAccessor httpContextAccesstor)
{
this._appModuleRepo = appModuleRepo;
this._organUserRepo = organUserRepo;
this._httpContextAccesstor = httpContextAccesstor;
}
@ -58,16 +60,6 @@ namespace Platform
list.Add(new Claim("Avatar", organUser.User.Avatar));
}
}
//
//var modules = this._organUserRepo.Table()
//.Where(o => o.User.UserName == userName)
//.Where(o => o.OrganId == currentOrganId)
////.Include(o => o.User)
////.Include(o => o.UserRoles).ThenInclude(o => o.OrganRole).ThenInclude(o => o.RolePermissions).ThenInclude(o => o.Permission)
////.ThenInclude(o => o.Category).ThenInclude(o => o.AppModule)
//.SelectMany(o=>o.UserRoles).Select(o=>o.OrganRole).SelectMany(o=>o.RolePermissions).Select(o=>o.Permission).Select(o=>o.Category).Select(o=>o.AppModule)
//.ToList();
//this._httpContextAccesstor.HttpContext.Items["AppModules"] = modules;
}
}
return list;

@ -1,6 +1,11 @@
@using Microsoft.AspNetCore.Http.Extensions
@using Microsoft.EntityFrameworkCore
@inject Infrastructure.Application.Services.Settings.ISettingService settingSerice
@inject IRepository<OrganUser> organUserRepo
@inject IRepository<AppModule> appModuleRepo
@{
this.Context.Request.HttpContext.Items["modules"] = appModuleRepo.ReadOnlyTable().Include(o => o.PermissionCategories).ThenInclude(o => o.Permissions).ToList();;
}
@{
var name = settingSerice.GetValue("name");
var logo = settingSerice.GetValue("logo");

@ -1,27 +1,25 @@
<ul class="navbar-nav">
@using System.Security.Claims
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" data-widget="pushmenu" href="#"><i class="fas fa-bars"></i></a>
</li>
<li class="nav-item d-none d-sm-inline-block">
<a href="@Url.Action("Index","Home",new { area=""})" class="@GetLinkClass(area:"")">首页</a>
<a href="@Url.Action("Index", "Home", new { area = "" })" class="@GetLinkClass(area: "")">首页</a>
</li>
@if (HasPermission("Read-Platform-Setting"))
{
<li class="nav-item d-none d-sm-inline-block">
<a href="@Url.Action("Index","Setting",new { area="Admin"})" class="@GetLinkClass(area:"Admin")">基础设置</a>
</li>
}
<li class="nav-item d-none d-sm-inline-block">
<a href="@Url.Action("Index","IoTProductCategory",new { area="IoTCenter"})" class="@GetLinkClass(area:"IoTCenter")">物联管控</a>
</li>
</ul>
@{
var modules = this.Context.Request.HttpContext.Items["AppModules"] as List<AppModule>;
if (modules != null)
{
foreach (var item in modules.SelectMany(o => o.PermissionCategories).SelectMany(o => o.Permissions))
@{
var modules = this.Context.Request.HttpContext.Items["modules"] as List<AppModule>;
if (modules != null)
{
<a href="@Url.Action(item.Number,item.Category.Number,new { area=item.Category.AppModule.Number})">@item.Category.AppModule.Name</a>
var numbers = User.Claims.Where(o => o.Type == ClaimTypes.Role).Select(o => o.Value).ToList();
foreach (var module in modules.Where(o=>o.PermissionCategories.SelectMany(o => o.Permissions).Any(o => numbers.Contains(o.Number))).OrderBy(o=>o.Order))
{
if (module.PermissionCategories.SelectMany(o => o.Permissions).Any(o => numbers.Contains(o.Number)))
{
<li class="nav-item d-none d-sm-inline-block">
<a href="@Url.Action("Index", "Home", new { area = module.Number })" class="@GetLinkClass(area: module.Number)">@module.Name</a>
</li>
}
}
}
}
}
</ul>

Loading…
Cancel
Save