コード例 #1
0
ファイル: ValitRules.cs プロジェクト: crazyants/Valit
        private IValitResult Validate(IEnumerable <IValitRule <TObject> > rules)
        {
            var result = ValitResult.Success;

            foreach (var rule in rules.ToList())
            {
                result &= rule.Validate(_object);

                if (!result.Succeeded)
                {
                    _strategy.Fail(rule, result, out bool cancel);
                    if (cancel)
                    {
                        break;
                    }
                }
            }

            _strategy.Done(result);

            return(result);
        }
コード例 #2
0
        internal static IValitResult ValidateRules <TObject>(this IEnumerable <IValitRule <TObject> > rules, IValitStrategy strategy, TObject @object) where TObject : class
        {
            rules.ThrowIfNull();

            var result = ValitResult.Success;

            foreach (var rule in rules.ToList())
            {
                result &= rule.Validate(@object);

                if (!result.Succeeded)
                {
                    strategy.Fail(rule, result, out bool cancel);
                    if (cancel)
                    {
                        break;
                    }
                }
            }

            strategy.Done(result);

            return(result);
        }