private void OnRuleFiredEvent(object sender, AgendaEventArgs e)
        {
            Trace.WriteLine($"Rule fired {e.Rule.Name}");
            var fact           = (DecisionRuleRequest)e.Facts.First().Value;
            var ruleProperties = e.Rule.Properties;

            var decisionRuleResponse = JsonConvert.DeserializeObject <DecisionRuleResponse>
                                           (ruleProperties["ResponseJson"] as string);

            decisionRuleResponse.ReviewId = fact.ReviewId;
            decisionRuleResponse.RuleId   = (int)ruleProperties["RuleId"];

            _decisionRuleResponses.Add(decisionRuleResponse);

            Trace.WriteLine($"Rule fired {e.Rule.Name} complete");
        }
Esempio n. 2
0
        public void Fire_RuleFires_RaisesRuleFiredEvent()
        {
            //Arrange
            var factory = CreateTarget();
            var session = factory.CreateSession();

            var fact = new FactType {
                TestProperty = "Valid Value"
            };

            session.Insert(fact);

            object          factorySender = null;
            AgendaEventArgs factoryArgs   = null;
            object          sessionSender = null;
            AgendaEventArgs sessionArgs   = null;

            factory.Events.RuleFiredEvent += (sender, args) =>
            {
                factorySender = sender;
                factoryArgs   = args;
            };
            session.Events.RuleFiredEvent += (sender, args) =>
            {
                sessionSender = sender;
                sessionArgs   = args;
            };

            //Act
            session.Fire();

            //Assert
            Assert.Same(session, factorySender);
            Assert.Same(session, sessionSender);
            Assert.Same(fact, factoryArgs.Facts.Single().Value);
            Assert.Same(fact, sessionArgs.Facts.Single().Value);
            Assert.Contains("TestRule", factoryArgs.Rule.Name);
            Assert.Contains("TestRule", sessionArgs.Rule.Name);
        }
Esempio n. 3
0
        public void Retract_RuleDeactivated_RaisesActivationDeletedEvent()
        {
            //Arrange
            var factory = CreateTarget();
            var session = factory.CreateSession();

            var fact = new FactType {
                TestProperty = "Valid Value"
            };

            session.Insert(fact);

            object          factorySender = null;
            AgendaEventArgs factoryArgs   = null;
            object          sessionSender = null;
            AgendaEventArgs sessionArgs   = null;

            factory.Events.ActivationDeletedEvent += (sender, args) =>
            {
                factorySender = sender;
                factoryArgs   = args;
            };
            session.Events.ActivationDeletedEvent += (sender, args) =>
            {
                sessionSender = sender;
                sessionArgs   = args;
            };

            //Act
            session.Retract(fact);

            //Assert
            Assert.AreSame(session, factorySender);
            Assert.AreSame(session, sessionSender);
            Assert.AreSame(fact, factoryArgs.Facts.Single().Value);
            Assert.AreSame(fact, sessionArgs.Facts.Single().Value);
            Assert.That(factoryArgs.Rule.Name.Contains("TestRule"));
            Assert.That(sessionArgs.Rule.Name.Contains("TestRule"));
        }
Esempio n. 4
0
        void OnRuleFiredEventHandler(object sender, AgendaEventArgs e)
        {
            foreach (IFactMatch fact in e.Facts)
            {
                Console.WriteLine(e.Rule.Name);
                Console.WriteLine(fact.Value.GetType());

                foreach (var field in (IEnumerable <PrimitiveField>)fact.Value)
                {
                    Console.WriteLine(field.ToJsonString());
                    if (field == null)
                    {
                        Console.WriteLine($"Field 'null'");
                        Console.WriteLine($"\tRule '{e.Rule.Name}' executed => '{e.Rule.Description}'");
                        continue;
                    }

                    Console.WriteLine($"Field '{field.Id}'");
                    Console.WriteLine($"\tRule '{e.Rule.Name}' executed => '{e.Rule.Description}'");
                }
            }
        }
Esempio n. 5
0
 private static void EventProviderOnRuleFiringEvent(object sender, AgendaEventArgs e)
 {
     Console.WriteLine("Fire({0}): {1}", e.Rule.Name, string.Join(",", e.Facts.Select(f => f.Value).ToArray()));
 }
Esempio n. 6
0
 private static void OnRuleFiringEvent(object sender, AgendaEventArgs e)
 {
     Console.WriteLine("Rule about to fire {0}", e.Rule.Name);
 }
Esempio n. 7
0
 private static void EventProviderOnActivationCreatedEvent(object sender, AgendaEventArgs e)
 {
     Console.WriteLine("+A({0}): {1}", e.Rule.Name, string.Join(",", e.Facts.Select(f => f.Value).ToArray()));
 }
Esempio n. 8
0
 private void OnRuleFired(object sender, AgendaEventArgs args)
 {
     Log.InfoFormat("Rule fired. Rule={0}", args.Rule.Name);
 }
 public static void OnRuleFireEvent(object sender, AgendaEventArgs e)
 {
     BagTMLog.LogDebug(
         String.Format("BagTM Engine Processing Rules Fired {0}", e.Rule.Name), sender);
 }
 public static void OnActivationDeletedEvent(object sender, AgendaEventArgs e)
 {
     BagTMLog.LogDebug(
         String.Format("BagTM Engine Processing Rules Events Fact about to Delete {0}", e.Rule.Name), sender);
 }
Esempio n. 11
0
 public void ActivationCreated(Activation activation)
 {
     var handler = ActivationCreatedEvent;
     if (handler != null)
     {
         var @event = new AgendaEventArgs(activation.Rule, activation.Tuple);
         handler(this, @event);
     }
 }
Esempio n. 12
0
 public void RuleFiring(Activation activation)
 {
     var handler = RuleFiringEvent;
     if (handler != null)
     {
         var @event = new AgendaEventArgs(activation.Rule, activation.Tuple);
         handler(this, @event);
     }
 }