コード例 #1
0
        internal override string ValidValue(object aValue)
        {
            DesignByContract.Check.Require(aValue != null, string.Format(CommonStrings.XMustNotBeNull, "aValue"));

            string dateTimeString = aValue.ToString();

            if (!Iso8601DateTime.ValidIso8601DateTime(dateTimeString))
            {
                return(string.Format(AmValidationStrings.InvalidIsoDateTimeX, dateTimeString));
            }

            Iso8601DateTime isoDateTime = new Iso8601DateTime(dateTimeString);

            if (isoDateTime == null)
            {
                throw new ApplicationException(string.Format(CommonStrings.XIsNull, "isoDateTime"));
            }

            if (this.Pattern != null)
            {
                if (!IsMatchPattern(isoDateTime))
                {
                    return(string.Format(AmValidationStrings.DateTimeXDoesNotMatchPatternY, dateTimeString, Pattern));
                }
            }

            if (this.Range != null)
            {
                if (!this.Range.Has(isoDateTime))
                {
                    return(string.Format(AmValidationStrings.DateTimeXOutOfRange, dateTimeString));
                }
            }

            return(string.Empty);
        }