public ValidationCondition(string MemberName, ComparsionValidationType Type)
 {
     this.MemberName = MemberName;
     this.Type = Type;
 }
 public ComparsionValidationAttribute(string DisplayName, string TargetPropertyName,
     ComparsionValidationType Type)
     : base(DisplayName, TargetPropertyName)
 {
     this.Type = Type;
 }
 protected bool GetComparsionResult(IComparable ObjectValue, IComparable FilterValue,
     ComparsionValidationType Type)
 {
     bool result;
     switch (Type)
     {
         case ComparsionValidationType.Equal:
             result = ObjectValue.CompareTo(FilterValue) == 0;
             break;
         case ComparsionValidationType.LessOrEqual:
             result = ObjectValue.CompareTo(FilterValue) <= 0;
             break;
         case ComparsionValidationType.Less:
             result = ObjectValue.CompareTo(FilterValue) < 0;
             break;
         case ComparsionValidationType.MoreOrEqual:
             result = ObjectValue.CompareTo(FilterValue) >= 0;
             break;
         case ComparsionValidationType.More:
             result = ObjectValue.CompareTo(FilterValue) > 0;
             break;
         case ComparsionValidationType.NotEqual:
             result = ObjectValue.CompareTo(FilterValue) != 0;
             break;
         default:
             result = false;
             break;
     }
     if (result)
     {
         return true;
     }
     memberValidationComments = string.Format("{0:.##} не соответствует {1}", ObjectValue, FilterValue);
     return false;
 }