Пример #1
0
        public RuleResult TermsConditionsRule(ClusterRuleCtx ctx)
        {
            return(new RuleResult {
                IsValid = ctx.App.DoYouAgreeTermsconditions.IsYes(),

                Reason = $"Customer did not agree Ts & Cs: " +
                         $"{ctx.App.DoYouAgreeTermsconditions}"
            });
        }
Пример #2
0
        public RuleResult AgeRule(ClusterRuleCtx ctx)
        {
            return(new RuleResult {
                IsValid = Util.IsOver(18, ctx.App.Dob),

                Reason = $"Customer underaged: " +
                         $"{ctx.App.Dob}"
            });
        }
Пример #3
0
        public RuleResult NumOfYearsOnMarsRule(ClusterRuleCtx ctx)
        {
            return(new RuleResult
            {
                IsValid = ctx.App.NumOfYearsOnMars >= 5,

                Reason = $"Not enough years on Mars: " +
                         $"{ctx.App.NumOfYearsOnMars}"
            });
        }
Пример #4
0
        public RuleResult AddressRule_CSharp_8(ClusterRuleCtx ctx)
        {
            var months        = ctx.App.MonthsAtCurrentAddress;
            var years         = ctx.App.YearsAtCurrentAddress;
            var totalInMonths = months + years * 12;

            var preAddress  = ctx.App.PreviousAddress;
            var homeAddress = ctx.App.HomeAddress;

            if (preAddress.IsAddressValid() == false)
            {
                return(new RuleResult()
                {
                    IsValid = false,
                    Reason = "Previous address invalid"
                });
            }

            var r = totalInMonths switch
            {
                var n when n < 0 => (false, "below zero"),

                var n when n < 12 => (!preAddress.IsSame(homeAddress),
                                      "Previous address cannot be the same as home address" +
                                      " if current address is less than 12 months"),

                var n when n >= 12 => (true, ""),

                _ => (true, "")
            };

            return(new RuleResult()
            {
                IsValid = r.Item1,
                Reason = r.Item2
            });
        }
Пример #5
0
        public RuleResult Run()
        {
            var ctx = new ClusterRuleCtx();

            return(new RuleCluster().Rules.FirstFails(ctx));
        }