Пример #1
0
        /// <summary>
        /// Adds a rule to the current context
        /// </summary>
        /// <param name="conditionTemplateType"></param>
        /// <param name="conditionData"></param>
        /// <param name="consequenceTemplateType"></param>
        /// <param name="consequenceData"></param>
        /// <returns></returns>
        public async Task <Guid> AddRule(
            int conditionTemplateType,
            string conditionData,
            int consequenceTemplateType,
            string consequenceData)
        {
            var condition = _ruleTemplateFactory
                            .CreateCondition(conditionTemplateType, conditionData);
            var consequence = _ruleTemplateFactory
                              .CreateConsequence(consequenceTemplateType, consequenceData);

            var template = new RuleTemplate <TFact, TOutput>(condition, consequence);

            var ruleId = RuleExecuter.AddRule(template.Rule);

            var ruleData = new RuleData()
            {
                Id              = ruleId,
                ContextId       = ContextId,
                ConditionType   = conditionTemplateType,
                ConditionData   = conditionData,
                ConsequenceType = consequenceTemplateType,
                ConsequenceData = consequenceData
            };

            await _ruleRepository.AddRule(ruleData);

            return(ruleId);
        }
Пример #2
0
        public int AddRule(AddRuleDomain rule, UserDomain user)
        {
            if (rule == null)
            {
                throw new NsiArgumentException(ExceptionMessages.ArgumentException);
            }

            return(_ruleRepository.AddRule(rule, user));
        }