Beispiel #1
0
 /// <summary>
 /// Specification execution with input
 /// </summary>
 /// <param name="condition"></param>
 /// <param name="specificaiton"></param>
 /// <returns></returns>
 public RuleEngine <TResult> ValidateIf(Func <bool> condition, BaseSpecificationContainer specificaiton)
 {
     if (!condition())
     {
         return(this);
     }
     return(Validate(specificaiton));
 }
Beispiel #2
0
        /// <summary>
        /// Specification container execution with input
        /// </summary>
        /// <param name="specificaiton"></param>
        /// <returns></returns>
        public RuleEngine <TResult> Validate(BaseSpecificationContainer specificaiton)
        {
            specificaiton.Use(_strategy);
            var result = specificaiton.Execute();

            if (result.Any(x => !x.IsValid))
            {
                _specificationErrors.AddRange(result.Where(x => !x.IsValid).Select(x => new SpecificationErrorInfo(x)));
            }

            return(this);
        }