1: [AttributeUsage(AttributeTargets.Property,AllowMultiple=false)]
2: public class BaseAttribute:Attribute
3: { 4: public BaseAttribute(string ErrorMessage)
5: { 6: this.ErrorMessage = ErrorMessage;
7: }
8:
9: public string ErrorMessage { get; set; } 10:
11: internal virtual string IsValid(PropertyInfo Property,object Object)
12: { 13: return ErrorMessage;
14: }
15: }
16:
17: public class Between : BaseAttribute
18: { 19: public Between(object MinValue,object MaxValue, string ErrorMessage)
20: : base(ErrorMessage)
21: { 22: this.MinValue = MinValue;
23: this.MaxValue = MaxValue;
24: }
25:
26: public object MinValue { get; set; } 27: public object MaxValue { get; set; } 28:
29: internal override string IsValid(PropertyInfo Property, object Object)
30: { 31: object Value = Property.GetValue(Object, null);
32: if (Value is DateTime && (DateTime)Value <= DateTime.Parse(this.MaxValue.ToString()) && (DateTime)Value >= DateTime.Parse(this.MinValue.ToString()))
33: return "";
34: else if (Value is DateTime)
35: return ErrorMessage;
36: else if (double.Parse(Value.ToString()) <= double.Parse(this.MaxValue.ToString()) && double.Parse(Value.ToString()) >= double.Parse(this.MinValue.ToString()))
37: return "";
38: return ErrorMessage;
39: }
40: }