private void ValidateChilds(BlockingCollection <IValidationNode> nodes, IValidationNode parentNode, IValidateContext context, EDSValidationResult edsValidationResult) { //Now look for our child and validate them. Parallel.ForEach(nodes.Where(c => c.ParentValidationCode == parentNode.ValidationCode).ToList(), c => { Stopwatch swNode = new Stopwatch(); swNode.Start(); c.ParentValidationNode = parentNode; _logger.LogInformation(string.Format("Validation of {0} node with parentnode {1} started.", c.ValidationCode, c.ParentValidationCode)); if (c.Validate(context)) { edsValidationResult.NodeValidateResult.Add(new KeyValuePair <IValidationNode, bool>(c, true)); edsValidationResult.NodeExecutionTimeResult.Add(new KeyValuePair <IValidationNode, long>(c, swNode.ElapsedMilliseconds)); _logger.LogInformation(string.Format("Validation of {0} node with parentnode {1} passed.", c.ValidationCode, c.ParentValidationCode)); ValidateChilds(nodes, c, context, edsValidationResult); } else { edsValidationResult.NodeValidateResult.Add(new KeyValuePair <IValidationNode, bool>(c, false)); edsValidationResult.NodeExecutionTimeResult.Add(new KeyValuePair <IValidationNode, long>(c, swNode.ElapsedMilliseconds)); _logger.LogInformation(string.Format("Validation of {0} node with parentnode {1} failed.", c.ValidationCode, c.ParentValidationCode)); } _logger.LogInformation(string.Format("Validation of {0} node with parentnode {1} completed.", c.ValidationCode, c.ParentValidationCode)); }); }
private static void fillFields(ValidationOptions options, IValidationNode node, IServiceLocator services, Accessor accessor) { var mode = node.DetermineMode(services, accessor); var field = new FieldOptions { field = accessor.Name, mode = mode.Mode }; var graph = services.GetInstance<ValidationGraph>(); var rules = graph.FieldRulesFor(accessor); var ruleOptions = new List<FieldRuleOptions>(); rules.Each(rule => { var ruleMode = rule.Mode ?? mode; ruleOptions.Add(new FieldRuleOptions { rule = RuleAliases.AliasFor(rule), mode = ruleMode.Mode }); }); field.rules = ruleOptions.ToArray(); options._fields.Add(field); }
public ValidationResult(IValidateContext context, IValidationNode validateNode) { _node = validateNode; context.ResultCollection.Add(this); this.ValidationCode = validateNode.ValidationCode; this.ParentValidationCode = validateNode.ParentValidationCode; }
private static void fillFields(ValidationOptions options, IValidationNode node, IServiceLocator services, Accessor accessor, Type type) { var mode = node.DetermineMode(services, accessor); var field = new FieldOptions { field = accessor.Name, mode = mode.Mode }; var graph = services.GetInstance <ValidationGraph>(); var rules = graph.FieldRulesFor(type, accessor); var ruleOptions = new List <FieldRuleOptions>(); rules.Each(rule => { var ruleMode = rule.Mode ?? mode; ruleOptions.Add(new FieldRuleOptions { rule = RuleAliases.AliasFor(rule), mode = ruleMode.Mode }); }); field.rules = ruleOptions.ToArray(); options._fields.Add(field); }
private static void ExpectValidatorType <TValidator, TValidated>(IValidationNode <Person, TValidated> node) { node.Expect(n => n.AddValidator(null)).Constraints(Iz.TypeOf <TValidator>()).Return(null); }
protected override void PerTestSetUp() { stringNode = CreateMock <IValidationNode <Person, string> >(); itemsNode = CreateMock <IValidationNode <Person, IList <Item> > >(); }
public static ValidatorNode <TInstance, string> Matches <TInstance>(this IValidationNode <TInstance, string> node, string pattern) { return(node.AddValidator(new RegExValidator <TInstance>(pattern))); }
public static ValidatorNode <TInstance, TValue> Custom <TInstance, TValue>(this IValidationNode <TInstance, TValue> node, Predicate <TValue> validationFunction) { return(node.AddValidator(new CustomValidator <TInstance, TValue>(validationFunction))); }
public static ValidatorNode <TInstance, TValue> Null <TInstance, TValue>(this IValidationNode <TInstance, TValue> node) where TValue : class { return(node.AddValidator(new NullValidator <TInstance, TValue>())); }
public static ValidatorNode <TInstance, TValue> LowerThan <TInstance, TValue>(this IValidationNode <TInstance, TValue> node, TValue valueToCompare) where TValue : IComparable <TValue> { return(node.AddValidator(new LowerThanValidator <TInstance, TValue>(valueToCompare))); }
public static ValidatorNode <TInstance, TValue> LowerOrEqualTo <TInstance, TValue>(this IValidationNode <TInstance, TValue> node, Expression <Func <TInstance, TValue> > valueToCompare) where TValue : IComparable <TValue> { return(node.AddValidator(new LowerOrEqualToValidator <TInstance, TValue>(valueToCompare))); }
public static ValidatorNode <TInstance, TValue> GreaterOrEqualTo <TInstance, TValue>(this IValidationNode <TInstance, TValue> node, TValue valueToCompare) where TValue : IComparable <TValue> { return(node.AddValidator(new GreaterOrEqualToValidator <TInstance, TValue>(valueToCompare))); }
public static ValidatorNode <TInstance, TValue> GreaterThan <TInstance, TValue>(this IValidationNode <TInstance, TValue> node, Expression <Func <TInstance, TValue> > valueToCompare) where TValue : IComparable <TValue> { return(node.AddValidator(new GreaterThanValidator <TInstance, TValue>(valueToCompare))); }
public static ValidatorNode <TInstance, string> Length <TInstance>(this IValidationNode <TInstance, string> node, Expression <Func <TInstance, int> > minLength, Expression <Func <TInstance, int> > maxLength) { return(node.AddValidator(new LengthValidator <TInstance>(minLength, maxLength))); }
public static ValidatorNode <TInstance, IList <TItem> > Empty <TInstance, TItem>(this IValidationNode <TInstance, IList <TItem> > node) { return(node.AddValidator(new ListEmptyValidator <TInstance, TItem>())); }
public static ValidatorNode <TInstance, string> Empty <TInstance>(this IValidationNode <TInstance, string> node) { return(node.AddValidator(new StringEmptyValidator <TInstance>())); }