예제 #1
0
        protected virtual bool ValidateInternal(INode focusNode, IEnumerable <INode> valueNodes, Report report)
        {
            var components = (
                from component in Graph.ConstraintComponents
                where component.Matches(this)
                select component.Constraints(this))
                             .Aggregate(Enumerable.Empty <Constraint>(), (first, second) => first.Concat(second));

            return((
                       from constraint in Constraints.Concat(components)
                       select constraint.Validate(focusNode, valueNodes, report))
                   .Aggregate(true, (first, second) => first && second));
        }