コード例 #1
0
 protected virtual object Execute(IUser dealer, object parameterObj, IReadOnlyState states, Context context)
 {
     if (!this.hasFullChildren)
     {
         var inputDic = JSON.ToDict(inputs, "nextDealerId", "nextDealerName", "isDone");
         return(inputDic);
     }
     else
     {
         var children = this.Children;
         if (children.Count == 0)
         {
             this.StartChildActivity(context);
         }
         else
         {
             var actived = children.Where(p => p.Status != ActivityStates.Canceled && p.Status != ActivityStates.Completed);
             if (actived.Count() > 0)
             {
                 foreach (var activity in actived)
                 {
                     activity.Process(context);
                 }
             }
             else
             {
                 return(new Dictionary <string, string>());
             }
         }
         return(null);
     }
 }
コード例 #2
0
        static void ImportStates(Activity activity, object inputs, Context context)
        {
            var node = activity.Graph;

            activity.Entity.Inputs = JSON.Stringify(inputs);
            if (node.Imports != null && node.Imports.Count > 0 && context.Inputs != null)
            {
                var inputDic = JSON.ToDict(inputs);
                if (inputDic != null && inputDic.Count > 0)
                {
                    var states = new Dictionary <string, string>();
                    foreach (var pair in node.Imports)
                    {
                        inputDic.TryGetValue(pair.Key, out string stat);
                        states.Add(pair.Value, stat);
                    }
                    activity.Entity.States = JSON.Stringify(states);
                }
            }
        }