protected override Task Render(VisualProperty property, CodeGeneratorContext context)
        {
            var gen = (CodeMemberMethod)context.CodeScope.Peek();

            switch (property.Key)
            {
            case "template":
                CodeGeneration_Visuals.EnsureLayout(context, property.Value);
                var method = new CodeMethodInvokeExpression(
                    new CodeTypeReferenceExpression("Output"),
                    "SetTemplate",
                    new CodeVariableReferenceExpression(CodeConstants.RequestVariableName),
                    new CodePrimitiveExpression(property.Value));
                gen.Statements.Add(method);
                break;

            case "background":
            case "title":
            case "subtitle":
                var propertyMethod = new CodeMethodInvokeExpression(
                    new CodeTypeReferenceExpression("Output"),
                    "SetDataProperty",
                    new CodeVariableReferenceExpression(CodeConstants.RequestVariableName),
                    new CodePrimitiveExpression(property.Key.ToLower()),
                    new CodePrimitiveExpression(property.Value));
                gen.Statements.Add(propertyMethod);
                break;
            }
            return(Noop(context));
        }
        private static void EnsureAPLHelper(CodeGeneratorContext context)
        {
            if (context.SceneFiles.ContainsKey("APLHelper"))
            {
                return;
            }

            var code = new CodeCompileUnit();
            var ns   = new CodeNamespace(context.Options.SafeRootNamespace);

            ns.Imports.Add(new CodeNamespaceImport("Alexa.NET.Response.APL"));
            ns.Imports.Add(new CodeNamespaceImport("System.IO"));
            ns.Imports.Add(new CodeNamespaceImport("Newtonsoft.Json"));
            code.Namespaces.Add(ns);

            var randomiserClass = CodeGeneration_Visuals.GenerateHelper();

            ns.Types.Add(randomiserClass);

            context.SceneFiles.Add("APLHelper", code);
        }