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