annotate Source/Validation/MaxDateValueAttribute.cs @ 4:f757da6161a1

!bug 100 + 2h fixed gregression
author cin
date Sun, 24 Aug 2014 17:57:42 +0400
parents f990fcb411a9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1 using System;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3 namespace BLToolkit.Validation
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5 [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6 public class MaxDateValueAttribute : MaxValueAttribute
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8 public MaxDateValueAttribute(int year, int month, int day)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 : base(new DateTime(year, month, day))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 public MaxDateValueAttribute(int year, int month, int day, string errorMessage)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 : this(year, month, day)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 ErrorMessage = errorMessage;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19 public MaxDateValueAttribute(int year, int month, int day, bool isExclusive)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 : base(new DateTime(year, month, day), isExclusive)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24 public MaxDateValueAttribute(int year, int month, int day, bool isExclusive, string errorMessage)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25 : this(year, month, day, isExclusive)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27 ErrorMessage = errorMessage;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30 public override bool IsValid(ValidationContext context)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32 if (context.IsNull(context))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33 return true;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35 DateTime contextValue = Convert.ToDateTime(context.Value);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36 DateTime testValue = (DateTime)GetValue(context);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38 return testValue > contextValue || !IsExclusive && testValue == contextValue;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41 }