Esempio n. 1
0
        /// <inheritdoc/>
        public GetValueToBeValidatedResponse GetValueToBeValidated(IManifestValue manifestValue, object parentValue, ResolvedValidationOptions validationOptions)
        {
            if (parentValue is null)
            {
                return(IgnoredGetValueToBeValidatedResponse.Default);
            }

            try
            {
                var valueToBeValidated = manifestValue.AccessorFromParent(parentValue);
                return(new SuccessfulGetValueToBeValidatedResponse(valueToBeValidated));
            }
            catch (Exception e)
            {
                var behaviour = behaviourProvider.GetBehaviour(manifestValue, validationOptions);
                if (behaviour == ValueAccessExceptionBehaviour.Throw)
                {
                    var message = String.Format(Resources.ExceptionMessages.GetExceptionMessage("ErrorAccessingValue"),
                                                manifestValue,
                                                parentValue);
                    throw new ValidationException(message, e);
                }
                else if (behaviour == ValueAccessExceptionBehaviour.TreatAsError)
                {
                    return(new ErrorGetValueToBeValidatedResponse(e));
                }

                return(IgnoredGetValueToBeValidatedResponse.Default);
            }
        }
Esempio n. 2
0
 /// <inheritdoc/>
 public ValueAccessExceptionBehaviour GetBehaviour(IManifestValue manifestValue, ResolvedValidationOptions validationOptions)
 {
     return(manifestValue.AccessorExceptionBehaviour.HasValue
         ? manifestValue.AccessorExceptionBehaviour.Value
         : validationOptions.AccessorExceptionBehaviour);
 }