using Core.Events; using Core.Interfaces; using Core.Settings; using Core.Yaml; using Generator.Infrastructure.OpenApi.Builders; namespace Generator.Infrastructure.OpenApi; public class OpenApiDirector : IGeneratorDirector { private DisplayEmitter _emitter; public OpenApiDirector(DisplayEmitter emitter) { _emitter = emitter; } /// /// Launches dotnet server generation /// /// /// public async Task DotnetServer(OpenApiYaml file, DotnetConfig config) { var dotnetServerBuilder = new OpenApiDotnetServerBuilder(config, _emitter); dotnetServerBuilder.Load(file); dotnetServerBuilder.CreateGeneratorConfig(); dotnetServerBuilder.Generate(); dotnetServerBuilder.Build(); await dotnetServerBuilder.ExecuteAllAsync(); } /// /// Launches dotnet client generation /// /// /// public async Task DotnetClient(OpenApiYaml file, DotnetConfig config) { var dotnetClientBuilder = new OpenApiDotnetClientBuilder(config, _emitter); dotnetClientBuilder.Load(file); dotnetClientBuilder.CreateGeneratorConfig(); dotnetClientBuilder.Generate(); dotnetClientBuilder.Build(); await dotnetClientBuilder.ExecuteAllAsync(); } /// /// Launches java generation /// /// /// public async Task Java(OpenApiYaml file, JavaConfig config) { var javaBuilder = new OpenApiJavaBuilder(config, _emitter); javaBuilder.Load(file); javaBuilder.CreateGeneratorConfig(); javaBuilder.Generate(); javaBuilder.Build(); await javaBuilder.ExecuteAllAsync(); } /// /// Launches javascript generation /// /// /// public async Task Javascript(OpenApiYaml file, JavascriptConfig config) { _emitter.Warn(this, "Javascript generation is temporally disabled"); /*var jsBuilder = new OpenApiJavascriptBuilder(config, _emitter); jsBuilder.Load(file); jsBuilder.Generate(); await jsBuilder.ExecuteAllAsync();*/ } }