コード例 #1
0
ファイル: RequiredRule.cs プロジェクト: keithdv/OOBehave
        public override IRuleResult Execute(IBase target)
        {
            var value = ReadProperty(target, TriggerProperties[0]);

            bool isError = false;

            if (value is string s)
            {
                isError = string.IsNullOrWhiteSpace(s);
            }
            else if (value?.GetType().IsValueType ?? false)
            {
                isError = value == Activator.CreateInstance(value.GetType());
            }
            else
            {
                isError = value == null;
            }

            if (isError)
            {
                return(RuleResult.PropertyError(TriggerProperties[0], $"{TriggerProperties[0]} is required."));
            }
            else
            {
                return(RuleResult.Empty());
            }
        }
コード例 #2
0
        public override IRuleResult Execute(ISimpleValidateObject target)
        {
            var result = RuleResult.Empty();

            if (string.IsNullOrWhiteSpace(target.FirstName))
            {
                result.AddPropertyError(nameof(ISimpleValidateObject.FirstName), $"{nameof(ISimpleValidateObject.FirstName)} is required.");
            }

            if (string.IsNullOrWhiteSpace(target.LastName))
            {
                result.AddPropertyError(nameof(ISimpleValidateObject.LastName), $"{nameof(ISimpleValidateObject.LastName)} is required.");
            }

            if (!result.IsError)
            {
                target.ShortName = $"{target.FirstName} {target.LastName}";
            }
            else
            {
                target.ShortName = string.Empty;
            }

            return(result);
        }
コード例 #3
0
        public override IRuleResult Execute(T target)
        {
            var dd = DisposableDependency ?? throw new ArgumentNullException(nameof(DisposableDependency));

            target.FullName = $"{target.Title} {target.ShortName}";

            return(RuleResult.Empty());
        }
コード例 #4
0
        public override IRuleResult Execute(T target)
        {
            RunCount++;

            target.FullName = $"{target.Title} {target.ShortName}";

            return(RuleResult.Empty());
        }
コード例 #5
0
        public override async Task <IRuleResult> Execute(IValidateBase target, CancellationToken token)
        {
            await Task.Delay(10);

            var sn = $"{ReadProperty(target, firstName)} {ReadProperty(target, lastName)}";

            SetProperty(target, shortName, sn);

            return(RuleResult.Empty());
        }
コード例 #6
0
ファイル: ValidateObject.cs プロジェクト: keithdv/OOBehave
 public ValidateObject(IValidateBaseServices <ValidateObject> services) : base(services)
 {
     RuleManager.AddRule(t =>
     {
         t.RuleRunCount++;
         if (t.Name == "Error")
         {
             return(RuleResult.PropertyError(nameof(Name), "Error"));
         }
         return(RuleResult.Empty());
     }, nameof(Name));
 }
コード例 #7
0
        public override async Task <IRuleResult> Execute(T target, CancellationToken token)
        {
            RunCount++;

            await Task.Delay(10, token);

            // System.Diagnostics.Debug.WriteLine($"FullNameAsyncRule {target.Title} {target.ShortName}");

            target.FullName = $"{target.Title} {target.ShortName}";

            return(RuleResult.Empty());
        }
コード例 #8
0
ファイル: ShortNameRule.cs プロジェクト: keithdv/OOBehave
        public override IRuleResult Execute(T target)
        {
            RunCount++;
            // System.Diagnostics.Debug.WriteLine($"Run Rule {target.FirstName} {target.LastName}");

            if (target.FirstName?.StartsWith("Error") ?? false)
            {
                return(RuleResult.PropertyError(nameof(IPersonBase.FirstName), target.FirstName));
            }

            target.ShortName = $"{target.FirstName} {target.LastName}";

            return(RuleResult.Empty());
        }
コード例 #9
0
        public override IRuleResult Execute(T target)
        {
            // System.Diagnostics.Debug.WriteLine($"Run Rule {target.FirstName} {target.LastName}");

            var dd = DisposableDependency ?? throw new ArgumentNullException(nameof(DisposableDependency));

            if (target.FirstName?.StartsWith("Error") ?? false)
            {
                return(RuleResult.PropertyError(nameof(IPersonBase.FirstName), target.FirstName));
            }


            target.ShortName = $"{target.FirstName} {target.LastName}";

            return(RuleResult.Empty());
        }
コード例 #10
0
        public override async Task <IRuleResult> Execute(T target, CancellationToken token)
        {
            RunCount++;

            await Task.Delay(10, token);

            // System.Diagnostics.Debug.WriteLine($"ShortNameAsyncRule {target.FirstName} {target.LastName}");

            if (target.FirstName?.StartsWith("Error") ?? false)
            {
                return(RuleResult.PropertyError(nameof(IPersonBase.FirstName), target.FirstName));
            }


            target.ShortName = $"{target.FirstName} {target.LastName}";

            return(RuleResult.Empty());
        }
コード例 #11
0
            public override IRuleResult Execute(IShortNameRuleTarget target)
            {
                if (string.IsNullOrWhiteSpace(target.FirstName))
                {
                    return((IRuleResult)RuleResult.PropertyError(nameof(IShortNameRuleTarget.FirstName), "FirstName is required"));
                }

                if (string.IsNullOrWhiteSpace(target.LastName))
                {
                    return((IRuleResult)RuleResult.PropertyError(nameof(IShortNameRuleTarget.LastName), "LastName is required"));
                }

                target.ShortName = $"{target.FirstName} {target.LastName}";

                // No support for overloaded methods
                target.ToUpperCase();

                return((IRuleResult)RuleResult.Empty());
            }