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