using NetAdmin.Domain.Enums.Sys; namespace NetAdmin.Domain.Dto.Sys.Role; /// /// 请求:创建角色 /// public record CreateRoleReq : Sys_Role, IValidatableObject { /// /// 角色-接口映射 /// public IReadOnlyCollection ApiIds { get; init; } /// [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonString] public override string DashboardLayout { get; set; } /// [EnumDataType(typeof(DataScopes), ErrorMessageResourceType = typeof(Ln) , ErrorMessageResourceName = nameof(Ln.角色数据范围不正确))] public override DataScopes DataScope { get; init; } = DataScopes.All; /// /// 当 DataScope = SpecificDept ,此参数指定部门编号 /// [SpecificDept] public IReadOnlyCollection DeptIds { get; init; } /// [JsonIgnore(Condition = JsonIgnoreCondition.Never)] public override bool DisplayDashboard { get; init; } /// [JsonIgnore(Condition = JsonIgnoreCondition.Never)] public override bool Enabled { get; init; } /// [JsonIgnore(Condition = JsonIgnoreCondition.Never)] public override bool IgnorePermissionControl { get; init; } /// /// 角色-菜单映射 /// public IReadOnlyCollection MenuIds { get; init; } /// [JsonIgnore(Condition = JsonIgnoreCondition.Never)] [Required(ErrorMessageResourceType = typeof(Ln), ErrorMessageResourceName = nameof(Ln.角色名称不能为空))] public override string Name { get; init; } /// [JsonIgnore(Condition = JsonIgnoreCondition.Never)] public override long Sort { get; init; } = Numbers.DEF_SORT_VAL; /// [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] public override string Summary { get; init; } /// public IEnumerable Validate(ValidationContext validationContext) { if (validationContext.MemberName != null) { DashboardLayout = JsonSerializer.Serialize(JsonDocument.Parse(DashboardLayout)); } yield break; } }