using System.ComponentModel.DataAnnotations; using Dlhis.Entity.Device.Enums; using Dlhis.Entity.Sys.Enums; using Kurisu.AspNetCore.Utils.Extensions; namespace Dlhis.Basic.Device.Request; public class DevicePermissionSaveRequest : IValidatableObject { /// /// 分配类型 AssignTypeEnumType /// [EnumDataType(typeof(AssignTypeEnumType), ErrorMessage = "枚举类型错误")] public AssignTypeEnumType AssignType { get; set; } /// /// 分配值 /// /// /// 如果为用户,那么AssignValue=UserNo /// [Required(ErrorMessage = "分配值不能为空")] public string AssignValue { get; set; } /// /// 来源分配权限类型 DevicePermissionTypeEnumType /// [EnumDataType(typeof(DeviceAssignmentTypeEnumType), ErrorMessage = "枚举类型错误")] public DeviceAssignmentTypeEnumType UniqueType { get; set; } /// /// 分配权限值 /// public List Codes { get; set; } /// /// AssignType == AssignTypeEnumType.Department 需要传入 /// public string TenantId { get; set; } /// /// 设备类型 /// [EnumDataType(typeof(DeviceTypeEnumType))] public DeviceTypeEnumType Type { get; set; } public IEnumerable Validate(ValidationContext validationContext) { if (AssignType == AssignTypeEnumType.Department) { if (TenantId.IsEmpty()) { yield return new ValidationResult("请明确具体的厂区", new[] { nameof(TenantId) }); } } else if (AssignType == AssignTypeEnumType.Role) { yield return new ValidationResult("暂不支持角色分配", new[] { nameof(AssignType) }); } } }