private void InvokePropertyValidator(ValidationContext <T> context, TElement value, string propertyName, RuleComponent <T, TElement> component, int index) { context.MessageFormatter.AppendArgument("CollectionIndex", index); bool valid = component.Validate(context, value); if (!valid) { PrepareMessageFormatterForValidationError(context, value); var failure = CreateValidationError(context, value, component); component.OnFailure?.Invoke(context.InstanceToValidate, context, value, failure.ErrorMessage); context.Failures.Add(failure); } }
public void AddComponent(RuleComponent <T, TProperty> component) { Rule.Components.Add(component); }
private protected void InvokePropertyValidator(ValidationContext <T> context, Lazy <TProperty> accessor, string propertyName, RuleComponent <T, TProperty> component) { bool valid = component.Validate(context, accessor.Value); if (!valid) { PrepareMessageFormatterForValidationError(context, accessor.Value); var failure = CreateValidationError(context, accessor.Value, component); context.Failures.Add(failure); } }
private async Task InvokePropertyValidatorAsync(ValidationContext <T> context, TElement value, string propertyName, RuleComponent <T, TElement> component, int index, CancellationToken cancellation) { context.MessageFormatter.AppendArgument("CollectionIndex", index); bool valid = await component.ValidateAsync(context, value, cancellation); if (!valid) { PrepareMessageFormatterForValidationError(context, value); var failure = CreateValidationError(context, value, component); context.Failures.Add(failure); } }
private async Task InvokePropertyValidatorAsync(ValidationContext <T> context, Lazy <TProperty> accessor, string propertyName, RuleComponent <T, TProperty> component, CancellationToken cancellation) { bool valid = await component.ValidateAsync(context, accessor.Value, cancellation); if (!valid) { PrepareMessageFormatterForValidationError(context, accessor.Value); var failure = CreateValidationError(context, accessor.Value, component); context.Failures.Add(failure); } }
private protected void InvokePropertyValidator(ValidationContext <T> context, Lazy <TProperty> accessor, string propertyName, RuleComponent <T, TProperty> component) { bool valid = component.Validate(context, accessor.Value); if (!valid) { PrepareMessageFormatterForValidationError(context, accessor.Value); var failure = CreateValidationError(context, accessor.Value, component); #pragma warning disable 618 component.OnFailure?.Invoke(context.InstanceToValidate, context, accessor.Value, failure.ErrorMessage); #pragma warning restore 618 context.Failures.Add(failure); } }
private protected void InvokePropertyValidator(ValidationContext <T> context, Lazy <TProperty> accessor, string propertyName, RuleComponent <T, TProperty> component) { if (!component.InvokeCondition(context)) { return; } if (component.HasAsyncCondition && !component.InvokeAsyncCondition(context, CancellationToken.None).GetAwaiter().GetResult()) { return; } bool valid = component.Validate(context, accessor.Value); if (!valid) { PrepareMessageFormatterForValidationError(context, accessor.Value); var failure = CreateValidationError(context, accessor.Value, component); component.OnFailure?.Invoke(context.InstanceToValidate, context, accessor.Value, failure.ErrorMessage); context.Failures.Add(failure); } }
private async Task InvokePropertyValidatorAsync(ValidationContext <T> context, Lazy <TProperty> accessor, string propertyName, RuleComponent <T, TProperty> component, CancellationToken cancellation) { if (!component.InvokeCondition(context)) { return; } if (!await component.InvokeAsyncCondition(context, cancellation)) { return; } bool valid = await component.ValidateAsync(context, accessor.Value, cancellation); if (!valid) { PrepareMessageFormatterForValidationError(context, accessor.Value); var failure = CreateValidationError(context, accessor.Value, component); component.OnFailure?.Invoke(context.InstanceToValidate, context, accessor.Value, failure.ErrorMessage); context.Failures.Add(failure); } }
public MessageBuilderContext(ValidationContext <T> innerContext, TProperty value, RuleComponent <T, TProperty> component) { _innerContext = innerContext; _value = value; Component = component; }