public void Add(Level exceptionOverLevel, string propertyName, object index, ValidationResultBase propertyResult)
        {
            //solo admite un error por propiedad/index
            if (propertyResult.Level > Level.Empty)
            {
                string name = (index == null)
                    ? propertyName
                    : string.Format("{0}[{1}]", propertyName, index);
                propertiesResults.Add(name, propertyResult);
                Length++;
                if (propertyResult.Level > Level)
                {
                    Level = propertyResult.Level;
                }
            }

            if (propertyResult.Level > exceptionOverLevel)
            {
                throw new ValidationException(this);
            }
        }
 internal ValidationException(ValidationResultBase firstError)
 {
     FirstError = firstError;
 }
 public void Add(Level exceptionOverLevel, string propertyName, ValidationResultBase propertyResult)
 {
     Add(exceptionOverLevel, propertyName, null, propertyResult);
 }