protected override Task <ActivityExecutionResult> OnExecuteAsync(WorkflowExecutionContext context, CancellationToken cancellationToken) { var projectInfo = context.GetVariable <ProjectInfo>("ProjectInfo"); var option = context.GetVariable <object>("Option"); var entityInfo = context.GetVariable <EntityInfo>("EntityInfo"); var interfaceInfo = context.GetVariable <TypeInfo>("InterfaceInfo"); var classInfo = context.GetVariable <TypeInfo>("ClassInfo"); var variables = context.GetVariables().Where(v => v.Key.StartsWith("Bag.")); var bag = new ExpandoObject(); foreach (var variable in variables) { ((IDictionary <string, object>)bag)[variable.Key.RemovePreFix("Bag.")] = variable.Value.Value; } context.SetVariable("Model", new { ProjectInfo = projectInfo, Option = option, EntityInfo = entityInfo, InterfaceInfo = interfaceInfo, ClassInfo = classInfo, Bag = bag, }); return(Task.FromResult(Done())); }