Exemplo n.º 1
0
        public void Add(StrategyRuleResult rule)
        {
            Rules.Add(rule);

            var totalValid = Rules.Count(r => r.Valid) * 1.0;

            Progress = (int)(totalValid / Rules.Count * 100);
        }
Exemplo n.º 2
0
        public StrategyRuleSetResult(StrategyRuleResult rule)
        {
            Name      = rule.RuleSetName;
            RuleSetId = rule.RuleSetId;
            Rules     = new List <StrategyRuleResult>();

            Add(rule);
        }
        public List <StrategyRuleSetResult> Calculate()
        {
            var result = new List <StrategyRuleSetResult>();

            foreach (var rule in _rules)
            {
                var firstValue  = GetFirstValue(rule);
                var secondValue = GetSecondValue(rule);

                var ruleResult = new StrategyRuleResult(rule);
                ruleResult.Compare(firstValue, secondValue);

                var ruleSet = result.FirstOrDefault(r => r.RuleSetId == ruleResult.RuleSetId);
                if (ruleSet == null)
                {
                    result.Add(new StrategyRuleSetResult(ruleResult));
                }
                else
                {
                    ruleSet.Add(ruleResult);
                }
            }
            return(result);
        }