コード例 #1
0
        public override void Evaluate(int spreadMax)
        {
            StartEvaluation();

            Before(FAgents);

            var notFailedAgents = from agent in FAgents
                                  where agent.ReturnCode != ReturnCodeEnum.Failure
                                  select agent;

            bool pinTrue  = IsPinValid(FInput);
            bool pinFalse = IsPinValid(FInputFalse);



            var result = Condition(notFailedAgents);

            int i = 0;

            foreach (var agent in notFailedAgents)
            {
                if (result.ElementAt(i))
                {
                    if (pinTrue)
                    {
                        FInput[0].Agents.Add(agent);
                    }
                }
                else
                {
                    if (pinFalse)
                    {
                        FInputFalse[0].Agents.Add(agent);
                    }
                }
                i++;
            }

            if (pinTrue)
            {
                FInput.Sync();          // call child
            }
            if (pinFalse)
            {
                FInputFalse.Sync();           // call child
            }
            After(notFailedAgents);
            FinishEvaluation();
        }