Пример #1
0
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            ErrorMessageResourceName = ErrorMessageResourceName.IsNotNullOrEmpty()
                ? ErrorMessageResourceName
                : MinimumLength > 0
                    ? "StringLengthAttribute_ValidationErrorIncludingMinimum"
                    : "StringLengthAttribute_ValidationError";

            var dictionary = value as IDictionary;

            if (dictionary == null)
            {
                return(ValidationResult.Success);
            }

            var invalidMembers = (from object key in dictionary.Keys
                                  let item = dictionary[key]?.ToString()
                                             where item?.Length > MaximumLength || item?.Length < MinimumLength
                                             select $"{validationContext.MemberName}[{key}]").ToList();

            return(invalidMembers.IsNotNullOrEmpty()
                ? new ValidationResult(
                       FormatErrorMessage(validationContext.DisplayName),
                       new[] { validationContext.MemberName })
                : ValidationResult.Success);
        }