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: }