using System.ComponentModel.DataAnnotations; using System.Runtime.Serialization; using DS.Module.Core; using DS.WMS.Core.Fee.Dtos; namespace DS.WMS.Core.Op.Dtos.TaskInteraction { /// /// 任务审核请求 /// public class TaskAuditRequest : AuditRequest, IValidatableObject { /// /// 任务类型名称 /// public string TaskTypeName { get; set; } = TaskBaseTypeEnum.NOT_SPECIFIED.ToString(); /// /// 任务类型 /// [IgnoreDataMember] public TaskBaseTypeEnum TaskType => string.IsNullOrEmpty(TaskTypeName) ? TaskBaseTypeEnum.NOT_SPECIFIED : Enum.Parse(TaskTypeName); /// /// 确定当前对象是否有效 /// /// 验证上下文 /// public virtual IEnumerable Validate(ValidationContext validationContext) { if (string.IsNullOrEmpty(TaskTypeName)) { yield return new ValidationResult($"参数 {nameof(TaskTypeName)} 不能为空"); } else if (!Enum.TryParse(TaskTypeName, out TaskBaseTypeEnum taskType)) { yield return new ValidationResult($"参数 {nameof(TaskTypeName)} 值不在有效枚举范围之内"); } } } }