public static Task CreateIn(CodeGeneratorContext context, string directoryFullName)
        {
            CodeGeneration_Story.CreateProjectFile(context);
            if (!context.RequestHandlers.ContainsKey("AMAZON.StopIntent"))
            {
                CodeGeneration_Interaction.AddIntent(context, new List <string> {
                    "stop"
                }, new CodeStatementCollection());
            }

            UpdatePipeline((CodeCompileUnit)context.OtherFiles["Pipeline.cs"], context.RequestHandlers.Keys.ToArray());
            CodeGeneration_Fallback.Ensure(context);

            var json = JsonSerializer.Create(new JsonSerializerSettings {
                Formatting = Newtonsoft.Json.Formatting.Indented
            });

            using (var csharp = CodeDomProvider.CreateProvider(CodeDomProvider.GetLanguageFromExtension(".cs")))
            {
                var sceneFileDirectory   = Path.Combine(directoryFullName, "Scenes");
                var handlerFileDirectory = Path.Combine(directoryFullName, "RequestHandlers");
                Directory.CreateDirectory(sceneFileDirectory);
                Directory.CreateDirectory(handlerFileDirectory);

                return(Task.WhenAll(
                           OutputRootFiles(context.OtherFiles, csharp, json, directoryFullName),
                           OutputSkillManifest(context, json, directoryFullName),
                           OutputSceneFiles(context.SceneFiles, csharp, sceneFileDirectory),
                           OutputRequestHandlers(context.RequestHandlers, csharp, handlerFileDirectory)
                           ));
            }
        }
 protected override Task Begin(Story story, CodeGeneratorContext context)
 {
     CodeGeneration_Story.CreateStoryFiles(context);
     return(base.Begin(story, context));
 }