Beispiel #1
0
 public ValidateRangeAttribute(object minRange, object maxRange)
 {
     if (minRange == null)
     {
         throw CmdletMetadataAttribute.tracer.NewArgumentNullException(nameof(minRange));
     }
     if (maxRange == null)
     {
         throw CmdletMetadataAttribute.tracer.NewArgumentNullException(nameof(maxRange));
     }
     if (!maxRange.GetType().Equals(minRange.GetType()))
     {
         bool flag = true;
         this.promotedType = ParserOps.figureOutOperationType((Token)null, ref minRange, out Type _, ref maxRange, out Type _);
         object result;
         if (this.promotedType != null && LanguagePrimitives.TryConvertTo(minRange, this.promotedType, out result))
         {
             minRange = result;
             if (LanguagePrimitives.TryConvertTo(maxRange, this.promotedType, out result))
             {
                 maxRange = result;
                 flag     = false;
             }
         }
         if (flag)
         {
             throw new ValidationMetadataException("MinRangeNotTheSameTypeOfMaxRange", (Exception)null, "Metadata", "ValidateRangeMinRangeMaxRangeType", new object[2]
             {
                 (object)minRange.GetType().Name,
                 (object)maxRange.GetType().Name
             });
         }
     }
     else
     {
         this.promotedType = minRange.GetType();
     }
     this.minComparable = minRange as IComparable;
     if (this.minComparable == null)
     {
         throw new ValidationMetadataException("MinRangeNotIComparable", (Exception)null, "Metadata", "ValidateRangeNotIComparable", new object[0]);
     }
     this.maxComparable = maxRange as IComparable;
     if (this.minComparable.CompareTo(maxRange) > 0)
     {
         throw new ValidationMetadataException("MaxRangeSmallerThanMinRange", (Exception)null, "Metadata", "ValidateRangeMaxRangeSmallerThanMinRange", new object[0]);
     }
     this.minRange = minRange;
     this.maxRange = maxRange;
 }