FluentValidationExtensions.cs 1.4 KB

1234567891011121314151617181920212223242526272829
  1. using FluentValidation;
  2. namespace AipGateway.API.Domain.Common.Extensions
  3. {
  4. public static class FluentValidationExtensions
  5. {
  6. public static IRuleBuilderOptions<T, TProperty> ValidateBoolProperty<T, TProperty>(this IRuleBuilder<T, TProperty> ruleBuilder)
  7. {
  8. return ruleBuilder.NotNull().WithMessage($"{nameof(TProperty)} Permission is required");
  9. }
  10. public static IRuleBuilderOptions<T, TProperty> ValidateNotNull<T, TProperty>(this IRuleBuilder<T, TProperty> ruleBuilder)
  11. {
  12. return ruleBuilder.NotNull().WithMessage($"{nameof(TProperty)} is required");
  13. }
  14. public static IRuleBuilderOptions<T, TProperty> ValidateProperty<T, TProperty>(this IRuleBuilder<T, TProperty> ruleBuilder)
  15. {
  16. return ruleBuilder.NotEmpty().NotNull().WithMessage($"{nameof(TProperty)} is required");
  17. }
  18. public static IRuleBuilderOptions<T, TProperty> ValidateEnumProperty<T, TProperty>(this IRuleBuilder<T, TProperty> ruleBuilder)
  19. {
  20. return ruleBuilder.ValidateProperty().IsInEnum().WithMessage($"{nameof(TProperty)} is invalid");
  21. }
  22. public static IRuleBuilderOptions<T, TProperty> ValidateNotNullEnum<T, TProperty>(this IRuleBuilder<T, TProperty> ruleBuilder)
  23. {
  24. return ruleBuilder.ValidateNotNull().IsInEnum().WithMessage($"{nameof(TProperty)} is invalid");
  25. }
  26. }
  27. }