Пример #1
0
        public override void InitTemplates(IRuleTemplateFactory factory)
        {
            factory.CreateRuleTemplate(RuleGuid, "LOGIC.NOT.NAME", "LOGIC.NOT.DESCRIPTION", "logic.not", "LOGIC.NAME", 100, 100);
            factory.CreateRuleInterfaceTemplate(RuleInput1, "I1", "LOGIC.NOT.INPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 1);

            factory.CreateRuleInterfaceTemplate(RuleOutput, "O", "LOGIC.NOT.OUTPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Output, 0, 1);
        }
Пример #2
0
        public override void InitTemplates(IRuleTemplateFactory factory)
        {
            factory.CreateRuleTemplate(RuleGuid, "TEST_RULE", "TEST_RULE",
                                       "TEST_RULE", "TEST_RULE", 100, 100);

            factory.CreateRuleInterfaceTemplate(RuleInput1, "I1", "TEST_INPUT", RuleGuid, RuleInterfaceDirection.Input, 1, 1);
            factory.CreateRuleInterfaceTemplate(RuleOutput, "O", "TEST_OUTPUT", RuleGuid, RuleInterfaceDirection.Output, 0, 1);
        }
        public override void InitTemplates(IRuleTemplateFactory factory)
        {
            factory.CreateRuleTemplate(RuleGuid, "ENOCEAN_LOGIC.WINDOW_HANDLE.NAME", "ENOCEAN_LOGIC.WINDOW_HANDLE.DESCRIPTION",
                                       "enocean-window-handle", "ENOCEAN_LOGIC.NAME", 100, 100);

            factory.CreateRuleInterfaceTemplate(RuleInput, "I", "ENOCEAN_LOGIC.WINDOW_HANDLE.INPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 1);
            factory.CreateRuleInterfaceTemplate(RuleOutput, "O", "ENOCEAN_LOGIC.WINDOW_HANDLE.OUTPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Output, 0, 1);
        }
Пример #4
0
        public override void InitTemplates(IRuleTemplateFactory factory)
        {
            factory.CreateRuleTemplate(RuleGuid, "LOGIC.EXCLUSIVE_OR.NAME", "LOGIC.EXCLUSIVE_OR.DESCRIPTION", "logic.exclusive_or", "LOGIC.NAME", 100, 100);

            factory.CreateRuleInterfaceTemplate(RuleInput1, "I1", "LOGIC.EXCLUSIVE_OR.INPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 1);
            factory.CreateRuleInterfaceTemplate(RuleInput2, "I2", "LOGIC.EXCLUSIVE_OR.INPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 2);

            factory.CreateRuleInterfaceTemplate(RuleOutput, "O", "LOGIC.EXCLUSIVE_OR.OUTPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Output, 0, 1);
        }
Пример #5
0
        /// <summary>
        /// Init method for your rule design
        /// </summary>
        /// <param name="factory"></param>
        public override void InitTemplates(IRuleTemplateFactory factory)
        {
            factory.CreateRuleTemplate(RuleGuid, "MATH.CEILING.NAME", "MATH.CEILING.DESCRIPTION",
                                       "math.ceiling", "MATH.NAME", 100, 100);

            factory.CreateRuleInterfaceTemplate(RuleInput1, "I1", "MATH.CEILING.INPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 1);

            factory.CreateRuleInterfaceTemplate(RuleOutput, "O", "MATH.CEILING.OUTPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Output, 0, 1);
        }
Пример #6
0
        public override void InitTemplates(IRuleTemplateFactory factory)
        {
            factory.CreateRuleTemplate(RuleGuid, "DIGITAL_TO_ANALOG.STATE_TO_IMPULS.NAME", "DIGITAL_TO_ANALOG.STATE_TO_IMPULS.DESCRIPTION", "digital_to_analog.state_to_imopuls", "DIGITAL_TO_ANALOG.NAME", 100, 100);

            factory.CreateRuleInterfaceTemplate(RuleInput, "I", "DIGITAL_TO_ANALOG.STATE_TO_IMPULS.INPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 1);
            factory.CreateRuleInterfaceTemplate(RuleOutput, "O", "DIGITAL_TO_ANALOG.STATE_TO_IMPULS.OUTPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Output, 0, 1);

            factory.CreateParameterRuleInterfaceTemplate(DelayParameter, "DIGITAL_TO_ANALOG.STATE_TO_IMPULS.DELAY.NAME", "DIGITAL_TO_ANALOG.STATE_TO_IMPULS.DELAY.DESCRIPTION", RuleGuid, 1, RuleInterfaceParameterDataType.Integer, 1000);
        }
Пример #7
0
        public override void InitTemplates(IRuleTemplateFactory factory)
        {
            factory.CreateRuleTemplate(RuleGuid, "COMPARE.BIGGER_OR_EQUAL.NAME", "COMPARE.BIGGER_OR_EQUAL.DESCRIPTION",
                                       "compare.bigger_or_equal", "COMPARE.NAME", 100, 100);

            factory.CreateRuleInterfaceTemplate(RuleInput1, "I1", "COMPARE.BIGGER_OR_EQUAL.INPUT1.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 1);
            factory.CreateRuleInterfaceTemplate(RuleInput2, "I2", "COMPARE.BIGGER_OR_EQUAL.INPUT2.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 1);

            factory.CreateRuleInterfaceTemplate(RuleOutput, "O", "COMPARE.BIGGER_OR_EQUAL.OUTPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Output, 0, 1);
        }
Пример #8
0
        /// <summary>
        /// Creates a new context from a passed in Context Id
        /// </summary>
        /// <param name="contextId"></param>
        /// <param name="ruleExecuter"></param>
        /// <param name="ruleRepository"></param>
        /// <param name="ruleTemplateFactory"></param>
        /// <returns></returns>
        public static async Task <RuleContext <TFact, TOutput> > CreateContext(
            Guid contextId,
            IRuleExecuter <TFact, TOutput> ruleExecuter,
            IRuleRepository ruleRepository,
            IRuleTemplateFactory <TFact, TOutput> ruleTemplateFactory)
        {
            await ruleRepository.AddContext(contextId);

            return(new RuleContext <TFact, TOutput>(ruleExecuter, ruleRepository, contextId, ruleTemplateFactory));
        }
Пример #9
0
        public override void InitTemplates(IRuleTemplateFactory factory)
        {
            factory.CreateRuleTemplate(RuleGuid, "MATH.SUBSTRACT.NAME", "MATH.SUBSTRACT.DESCRIPTION",
                                       "math.substract", "MATH.NAME", 100, 100);

            factory.CreateRuleInterfaceTemplate(RuleInput1, "I1", "MATH.SUBSTRACT.INPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 1);
            factory.CreateRuleInterfaceTemplate(RuleInput2, "I2", "MATH.SUBSTRACT.INPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 2);

            factory.CreateRuleInterfaceTemplate(RuleOutput, "O", "MATH.SUBSTRACT.OUTPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Output, 0, 1);
        }
Пример #10
0
        public override void InitTemplates(IRuleTemplateFactory factory)
        {
            factory.CreateRuleTemplate(RuleGuid, "MATH.MODULO.NAME", "MATH.MODULO.DESCRIPTION", "math.modulo", "MATH.NAME", 100, 100);

            factory.CreateRuleInterfaceTemplate(RuleInput1, "I1", "MATH.MODULO.INPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 1);
            factory.CreateRuleInterfaceTemplate(RuleInput2, "I2", "MATH.MODULO.INPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 2);

            factory.CreateRuleInterfaceTemplate(RuleOutput1, "O1", "MATH.MODULO.OUTPUT1.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Output, 0, 1);
            factory.CreateRuleInterfaceTemplate(RuleOutput2, "O2", "MATH.MODULO.OUTPUT2.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Output, 0, 2);
        }
Пример #11
0
        public override void InitTemplates(IRuleTemplateFactory factory)
        {
            factory.CreateRuleTemplate(RuleGuid, "MATH.MULTIPLY.NAME", "MATH.MULTIPLY.DESCRIPTION",
                                       "math.multiply", "MATH.NAME", 100, 100);

            factory.CreateRuleInterfaceTemplate(RuleInput1, "I1", "MATH.MULTIPLY.INPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 1);
            factory.CreateRuleInterfaceTemplate(RuleInput2, "I2", "MATH.MULTIPLY.INPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 2);

            factory.CreateRuleInterfaceTemplate(RuleOutput, "O", "MATH.MULTIPLY.OUTPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Output, 0, 1);
        }
Пример #12
0
        public override void InitTemplates(IRuleTemplateFactory factory)
        {
            factory.CreateRuleTemplate(RuleGuid, "COMPARE.SMALLER.NAME", "COMPARE.SMALLER.DESCRIPTION",
                                       "compare.smaller", "COMPARE.NAME", 100, 100);

            factory.CreateRuleInterfaceTemplate(RuleInput1, "I1", "COMPARE.SMALLER.INPUT1.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 1);
            factory.CreateRuleInterfaceTemplate(RuleInput2, "I2", "COMPARE.SMALLER.INPUT2.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 1);

            factory.CreateRuleInterfaceTemplate(RuleOutput, "O", "COMPARE.SMALLER.OUTPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Output, 0, 1);
        }
Пример #13
0
        public override void InitTemplates(IRuleTemplateFactory factory)
        {
            factory.CreateRuleTemplate(RuleGuid, "MATH.DIVISION.NAME", "MATH.DIVIDE.DESCRIPTION",
                                       "math.division", "MATH.NAME", 100, 100);

            factory.CreateRuleInterfaceTemplate(RuleInput1, "I1", "MATH.DIVISION.INPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 1);
            factory.CreateRuleInterfaceTemplate(RuleInput2, "I2", "MATH.DIVISION.INPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 2);

            factory.CreateRuleInterfaceTemplate(RuleOutput, "O", "MATH.DIVISION.OUTPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Output, 0, 1);
        }
Пример #14
0
        /// <summary>
        /// Creates a new empty Context
        /// </summary>
        /// <param name="ruleExecuter"></param>
        /// <param name="ruleRepository"></param>
        /// <param name="ruleTemplateFactory">The injected abstract factory to create the rules</param>
        /// <returns></returns>
        public static async Task <RuleContext <TFact, TOutput> > CreateContext(
            IRuleExecuter <TFact, TOutput> ruleExecuter,
            IRuleRepository ruleRepository,
            IRuleTemplateFactory <TFact, TOutput> ruleTemplateFactory)
        {
            var newGuid = Guid.NewGuid();

            return
                (await
                 CreateContext(newGuid, ruleExecuter, ruleRepository, ruleTemplateFactory));
        }
Пример #15
0
 private RuleContext(
     IRuleExecuter <TFact, TOutput> ruleExecuter,
     IRuleRepository ruleRepository,
     Guid contextId,
     IRuleTemplateFactory <TFact, TOutput> ruleTemplateFactory)
 {
     RuleExecuter         = ruleExecuter;
     _ruleRepository      = ruleRepository;
     ContextId            = contextId;
     _ruleTemplateFactory = ruleTemplateFactory;
 }
Пример #16
0
        public override void InitTemplates(IRuleTemplateFactory factory)
        {
            factory.CreateRuleTemplate(RuleGuid, "TIME.DELAYON.NAME", "TIME.DELAYON.DESCRIPTION",
                                       "time.delayed-off", "TIME.NAME", 100, 100);

            factory.CreateRuleInterfaceTemplate(RuleTrigger, "T", "TIME.DELAYON.TRIGGER.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 0, 1);

            factory.CreateRuleInterfaceTemplate(RuleOutput, "O", "TIME.DELAYON.OUTPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Output, 0, 1);

            factory.CreateParameterRuleInterfaceTemplate(RuleParamDelay, "TIME.DELAY.NAME", "TIME.DELAY.DESCRIPTION", RuleGuid, 1, Automatica.Core.EF.Models.RuleInterfaceParameterDataType.Integer, 5, true);
        }
Пример #17
0
        public override void InitTemplates(IRuleTemplateFactory factory)
        {
            factory.CreateRuleTemplate(RuleGuid, "TIME.TIMER.NAME", "TIME.TIMER.DESCRIPTION",
                                       "time.timer", "TIME.NAME", 100, 100);

            factory.CreateRuleInterfaceTemplate(RuleReset, "R", "TIME.TIMER.RESET.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 0, 1);

            factory.CreateRuleInterfaceTemplate(RuleOutput, "O", "TIME.TIMER.OUTPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Output, 0, 1);

            factory.CreateParameterRuleInterfaceTemplate(RuleTimerParameter, "TIME.TIMER.NAME", "TIME.TIMER.DESCRIPTION", RuleGuid, 1, RuleInterfaceParameterDataType.Timer, JsonConvert.SerializeObject(new TimerPropertyData()));
        }
Пример #18
0
        public override void InitTemplates(IRuleTemplateFactory factory)
        {
            factory.CreateRuleTemplate(RuleGuid, "MATH.ADD.NAME", "MATH.ADD.DESCRIPTION",
                                       "math.add", "MATH.NAME", 100, 100);

            factory.CreateRuleInterfaceTemplate(RuleInput1, "I1", "MATH.ADD.INPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 1);
            factory.CreateRuleInterfaceTemplate(RuleInput2, "I2", "MATH.ADD.INPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 2);
            factory.CreateRuleInterfaceTemplate(RuleInput3, "I3", "MATH.ADD.INPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 3);
            factory.CreateRuleInterfaceTemplate(RuleInput4, "I4", "MATH.ADD.INPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 4);

            factory.CreateRuleInterfaceTemplate(RuleOutput, "O", "MATH.ADD.OUTPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Output, 0, 1);
        }
Пример #19
0
        public override void InitTemplates(IRuleTemplateFactory factory)
        {
            factory.CreateRuleTemplate(RuleGuid, "LOGIC.IF.NAME", "LOGIC.IF.DESCRIPTION", "logic.if", "LOGIC.NAME", 100, 100);

            factory.CreateRuleInterfaceTemplate(RuleInput1, "I1", "LOGIC.IF.INPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 1);
            factory.CreateRuleInterfaceTemplate(RuleInput2, "I2", "LOGIC.IF.INPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 2);

            factory.CreateRuleInterfaceTemplate(RuleOutput, "O", "LOGIC.IF.OUTPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Output, 0, 1);

            factory.CreateParameterRuleInterfaceTemplate(RuleParamTrue, "LOGIC.IF.PARAM.TRUE.NAME", "LOGIC.IF.PARAM.TRUE.DESCRIPTION", RuleGuid, 1, Automatica.Core.EF.Models.RuleInterfaceParameterDataType.Integer, 1);
            factory.CreateParameterRuleInterfaceTemplate(RuleParamFalse, "LOGIC.IF.PARAM.FALSE.NAME", "LOGIC.IF.PARAM.FALSE.DESCRIPTION", RuleGuid, 2, Automatica.Core.EF.Models.RuleInterfaceParameterDataType.Integer, 0);
        }
        public override void InitTemplates(IRuleTemplateFactory factory)
        {
            factory.CreateRuleTemplate(RuleGuid, "OPERATIONS.SWITCH.NAME", "OPERATIONS.SWITCH.DESCRIPTION",
                                       "operations-switch", "OPERATIONS.NAME", 100, 100);

            factory.CreateRuleInterfaceTemplate(RuleInput, "OPERATIONS.SWITCH.INPUT.NAME", "OPERATIONS.SWITCH.INPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 0, 1, RuleInterfaceType.Input);
            factory.CreateRuleInterfaceTemplate(RuleState, "OPERATIONS.SWITCH.STATE.NAME", "OPERATIONS.SWITCH.STATE.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 0, 2, RuleInterfaceType.Status);

            factory.CreateRuleInterfaceTemplate(RuleOutput, "OPERATIONS.SWITCH.OUTPUT.NAME", "OPERATIONS.SWITCH.OUTPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Output, 0, 1, RuleInterfaceType.Output);

            factory.ChangeDefaultVisuTemplate(RuleGuid, VisuMobileObjectTemplateTypes.ToggleButton);
        }
Пример #21
0
        public override void InitTemplates(IRuleTemplateFactory factory)
        {
            factory.CreateRuleTemplate(RuleGuid, "STRING_OPERATIONS.CONCAT.NAME", "STRING_OPERATIONS.CONCAT.DESCRIPTION",
                                       "string_operations_concat", "STRING_OPERATIONS.CONCAT.NAME", 100, 100);

            factory.CreateRuleInterfaceTemplate(RuleInput1, "I1", "STRING_OPERATIONS.CONCAT.INPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 1);
            factory.CreateRuleInterfaceTemplate(RuleInput2, "I2", "STRING_OPERATIONS.CONCAT.INPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 2);
            factory.CreateRuleInterfaceTemplate(RuleInput3, "I3", "STRING_OPERATIONS.CONCAT.INPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 3);
            factory.CreateRuleInterfaceTemplate(RuleInput4, "I4", "STRING_OPERATIONS.CONCAT.INPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 4);

            factory.CreateRuleInterfaceTemplate(RuleOutput, "O", "STRING_OPERATIONS.CONCAT.OUTPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Output, 0, 1);
        }
Пример #22
0
        public override void InitTemplates(IRuleTemplateFactory factory)
        {
            factory.CreateRuleTemplate(RuleGuid, "DIGITAL_TO_ANALOG.TRIGGER.NAME", "DIGITAL_TO_ANALOG.TRIGGER.DESCRIPTION", "digital_to_analog.trigger", "DIGITAL_TO_ANALOG.NAME", 100, 100);

            factory.CreateRuleInterfaceTemplate(RuleInput, "I", "DIGITAL_TO_ANALOG.TRIGGER.INPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 1);
            factory.CreateRuleInterfaceTemplate(RuleValueInput, "V", "DIGITAL_TO_ANALOG.TRIGGER.VALUE.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 2);

            factory.CreateRuleInterfaceTemplate(RuleOutput, "O", "DIGITAL_TO_ANALOG.TRIGGER.OUTPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Output, 0, 1);

            factory.CreateParameterRuleInterfaceTemplate(DelayParameter, "DIGITAL_TO_ANALOG.TRIGGER.DELAY.NAME", "DIGITAL_TO_ANALOG.TRIGGER.DELAY.DESCRIPTION", RuleGuid, 1, RuleInterfaceParameterDataType.Integer, 0);
            factory.CreateParameterRuleInterfaceTemplate(ValueParameter, "DIGITAL_TO_ANALOG.TRIGGER.VALUE_PARAM.NAME", "DIGITAL_TO_ANALOG.TRIGGER.VALUE_PARAM.DESCRIPTION", RuleGuid, 1, RuleInterfaceParameterDataType.Text, "");
        }
Пример #23
0
        public override void InitTemplates(IRuleTemplateFactory factory)
        {
            factory.CreateRuleTemplate(RuleGuid, "MATH.RANDOM.NAME", "MATH.RANDOM.DESCRIPTION",
                                       "math.random", "MATH.NAME", 100, 100);

            factory.CreateRuleInterfaceTemplate(RuleInputTrigger, "Tr", "MATH.RANDOM.TRIGGER.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 1);
            factory.CreateRuleInterfaceTemplate(RuleInputDisabled, "Dis", "MATH.RANDOM.DISABLED.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 2);

            factory.CreateParameterRuleInterfaceTemplate(RuleParamMin, "Min", "MATH.RANDOM.MIN.DESCRIPTION", RuleGuid, 1, RuleInterfaceParameterDataType.Integer, 0);
            factory.CreateParameterRuleInterfaceTemplate(RuleParamMax, "Max", "MATH.RANDOM.MAX.DESCRIPTION", RuleGuid, 2, RuleInterfaceParameterDataType.Integer, 100);

            factory.CreateRuleInterfaceTemplate(RuleOutput, "O", "MATH.RANDOM.OUTPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Output, 0, 1);
        }
Пример #24
0
        public override void InitTemplates(IRuleTemplateFactory factory)
        {
            factory.CreateRuleTemplate(RuleGuid, "MESSENGER.CLOUD_EMAIL.NAME", "MESSENGER.CLOUD_EMAIL.DESCRIPTION",
                                       "messenger-cloud-email", "MESSENGER.NAME", 100, 100);

            factory.CreateRuleInterfaceTemplate(new Guid("7ac55e7b-3837-4efb-8995-70ef4c4dfef2"), "T", "MESSENGER.CLOUD_EMAIL.TRIGGER.DESCRIPTION",
                                                RuleGuid, RuleInterfaceDirection.Input, 0, 1);

            factory.CreateParameterRuleInterfaceTemplate(ToProperty, "MESSENGER.CLOUD_EMAIL.TO.NAME",
                                                         "MESSENGER.CLOUD_EMAIL.TO.DESCRIPTION", RuleGuid, 0, RuleInterfaceParameterDataType.Text, "");
            factory.CreateParameterRuleInterfaceTemplate(SubjectProperty, "MESSENGER.CLOUD_EMAIL.SUBJECT.NAME",
                                                         "MESSENGER.CLOUD_EMAIL.SUBJECT.DESCRIPTION", RuleGuid, 0, RuleInterfaceParameterDataType.Text, "");
        }
Пример #25
0
        public override void InitTemplates(IRuleTemplateFactory factory)
        {
            factory.CreateRuleTemplate(RuleGuid, "LOGIC.BINARY_DECODER.NAME", "LOGIC.BINARY_DECODER.DESCRIPTION", "logic.binary_decoder", "LOGIC.NAME", 100, 100);

            factory.CreateRuleInterfaceTemplate(RuleInput1, "AI", "LOGIC.BINARY_DECODER.INPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, 1, 1);

            factory.CreateRuleInterfaceTemplate(RuleOutput1, "Q1", "LOGIC.BINARY_DECODER.OUTPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Output, 0, 1);
            factory.CreateRuleInterfaceTemplate(RuleOutput2, "Q2", "LOGIC.BINARY_DECODER.OUTPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Output, 0, 2);
            factory.CreateRuleInterfaceTemplate(RuleOutput3, "Q3", "LOGIC.BINARY_DECODER.OUTPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Output, 0, 3);
            factory.CreateRuleInterfaceTemplate(RuleOutput4, "Q4", "LOGIC.BINARY_DECODER.OUTPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Output, 0, 4);
            factory.CreateRuleInterfaceTemplate(RuleOutput5, "Q5", "LOGIC.BINARY_DECODER.OUTPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Output, 0, 5);
            factory.CreateRuleInterfaceTemplate(RuleOutput6, "Q6", "LOGIC.BINARY_DECODER.OUTPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Output, 0, 6);
            factory.CreateRuleInterfaceTemplate(RuleOutput7, "Q7", "LOGIC.BINARY_DECODER.OUTPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Output, 0, 7);
            factory.CreateRuleInterfaceTemplate(RuleOutput8, "Q8", "LOGIC.BINARY_DECODER.OUTPUT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Output, 0, 8);
        }
Пример #26
0
        public override void InitTemplates(IRuleTemplateFactory factory)
        {
            factory.CreateRuleTemplate(RuleGuid, "SURVEILLANCE.WINDOW_MONITOR.NAME", "MATH.WINDOW_MONITOR.DESCRIPTION",
                                       "surveillance.window_monitor", "SUVREILLANCE.NAME", 100, 100);


            factory.CreateRuleInterfaceTemplate(Ct, "Ct", "SURVEILLANCE.WINDOW_MONITOR.TILT.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, int.MaxValue, 2);
            factory.CreateRuleInterfaceTemplate(Co, "Co", "SURVEILLANCE.WINDOW_MONITOR.OPEN.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, int.MaxValue, 3);
            factory.CreateRuleInterfaceTemplate(Cl, "Cl", "SURVEILLANCE.WINDOW_MONITOR.LOCKED.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, int.MaxValue, 4);


            factory.CreateRuleInterfaceTemplate(Cti, "Cti", "SURVEILLANCE.WINDOW_MONITOR.TILT_INVERTED.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, int.MaxValue, 5);
            factory.CreateRuleInterfaceTemplate(Coi, "Coi", "SURVEILLANCE.WINDOW_MONITOR.OPEN_INVERTED.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, int.MaxValue, 6);
            factory.CreateRuleInterfaceTemplate(Cli, "Cli", "SURVEILLANCE.WINDOW_MONITOR.LOCKED_INVERTED.DESCRIPTION", RuleGuid, RuleInterfaceDirection.Input, int.MaxValue, 7);

            factory.ChangeDefaultVisuTemplate(RuleGuid, VisuMobileObjectTemplateTypes.WindowMonitor);
        }
Пример #27
0
        /// <summary>
        /// Loads a context by a given identifier based on a passed in repository
        /// </summary>
        /// <param name="identifier">Identifier representing a context</param>
        /// <param name="ruleExecuter">Passed in empty rule executer</param>
        /// <param name="ruleRepository">Repository for saved rules</param>
        /// <param name="ruleTemplateFactory">Factory for service specific templates</param>
        /// <returns></returns>
        public static async Task <RuleContext <TFact, TOutput> > LoadContext(
            Guid identifier,
            IRuleExecuter <TFact, TOutput> ruleExecuter,
            IRuleRepository ruleRepository,
            IRuleTemplateFactory <TFact, TOutput> ruleTemplateFactory)
        {
            var rules = await ruleRepository.GetRulesByContext(identifier);

            var context = new RuleContext <TFact, TOutput>(ruleExecuter, ruleRepository, identifier, ruleTemplateFactory);

            foreach (var ruleData in rules)
            {
                var condition = ruleTemplateFactory
                                .CreateCondition(ruleData.ConditionType, ruleData.ConditionData);
                var consequence = ruleTemplateFactory
                                  .CreateConsequence(ruleData.ConsequenceType, ruleData.ConsequenceData);

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

                ruleExecuter.AddRule(ruleData.Id, template.Rule);
            }

            return(context);
        }
Пример #28
0
 /// <summary>
 /// Init method for the factory
 /// </summary>
 /// <param name="factory"></param>
 public abstract void InitTemplates(IRuleTemplateFactory factory);