Guest User

Untitled

a guest
Jul 16th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.26 KB | None | 0 0
  1. [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false)]
  2. public class RequiredIfIdIsNonZeroAttribute : Foolproof.RequiredIfAttribute
  3. {
  4.  
  5. public RequiredIfIdIsNonZeroAttribute(string dependentProperty, object dependentValue)
  6. : base(dependentProperty, dependentValue)
  7. {
  8. Register.Attribute(typeof(Web.Models.DataAnnotations.RequiredIfIdIsNonZeroAttribute));
  9. DataAnnotationsModelValidatorProvider.RegisterAdapter(typeof(RequiredIfIdIsNonZeroAttribute), typeof(RequiredIfIdIsNonZeroValidator));
  10. }
  11.  
  12. public string ErrorMessageKey { get; set; }
  13.  
  14. public override bool IsValid(object value)
  15. {
  16. return true;
  17. }
  18.  
  19. public override bool IsValid(object value, object container)
  20. {
  21. IResourceManager resourceManager = ObjectFactory.GetInstance<ResourceManager>();
  22. this.ErrorMessage = resourceManager.GetGlobalResourceObject(this.ErrorMessageKey);
  23. return base.IsValid(value, container);
  24. }
  25. }
  26.  
  27. public class RequiredIfIdIsNonZeroValidator :DataAnnotationsModelValidator<RequiredIfIdIsNonZeroAttribute>{ public RequiredIfIdIsNonZeroValidator(ModelMetadata metadata, ControllerContext context, RequiredIfIdIsNonZeroAttribute attribute)
  28. : base(metadata, context, attribute)
  29. {
  30. }
  31.  
  32. public override IEnumerable<ModelClientValidationRule> GetClientValidationRules()
  33. {
  34. IResourceManager resourceManager = ObjectFactory.GetInstance<ResourceManager>();
  35. var rule = new ModelClientValidationRule
  36. {
  37. ErrorMessage = resourceManager.GetGlobalResourceObject(this.Attribute.ErrorMessageKey),
  38. ValidationType = "RequiredIf"
  39. };
  40.  
  41. rule.ValidationParameters.Add("DependentProperty", this.Attribute.DependentProperty);
  42. rule.ValidationParameters.Add("DependentValue", this.Attribute.DependentValue);
  43. rule.ValidationParameters.Add("Operator", this.Attribute.Operator.ToString());
  44. return new[] { rule };
  45. }
  46. }
  47.  
  48. DataAnnotationsModelValidatorProvider.
  49. RegisterAdapter(typeof(RequiredIfIdIsNonZeroAttribute),typeof(RequiredIfIdIsNonZeroValidator));
  50.  
  51. [RequiredIfIdIsNonZeroAttribute("Id", "0", ErrorMessage="--"]
  52.  
  53. bool IsValid(object value, object container) will work.
  54.  
  55. bool IsValid(object value) is working
Add Comment
Please, Sign In to add comment