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); } }
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); } } }