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)} 值不在有效枚举范围之内");
}
}
}
}