// public class DefinedEnumAttribute : ValidationAttribute { protected override ValidationResult IsValid(object value, ValidationContext validationContext) { if (value != null) { if (Enum.IsDefined(value.GetType(), value)) { return ValidationResult.Success; } else { return new ValidationResult($"Not valid enum type {value.GetType().Name}."); } } return new ValidationResult("" + validationContext.DisplayName + " is required"); } } public enum OrderStatus { OrderReceived = 0, Preparing = 1, Printing = 2, Ready = 3, Shipped = 4 } public class OrderDto { [DefinedEnum] public OrderStatus OrderStatus { get; set; } } //