/// <summary> /// Generates client using provided settings. /// </summary> /// <param name="settings">Code generator settings.</param> public static void Generate(Settings settings) { if (settings == null) { throw new ArgumentNullException("settings"); } Logger.Entries.Clear(); Logger.LogInfo(Resources.AutoRestCore, Version); settings.Validate(); CodeGenerator codeGenerator = ExtensionsLoader.GetCodeGenerator(settings); Modeler modeler = ExtensionsLoader.GetModeler(settings); ServiceClient serviceClient; try { serviceClient = modeler.Build(); } catch (Exception exception) { throw ErrorManager.CreateError(exception, Resources.ErrorGeneratingClientModel, exception.Message); } try { codeGenerator.NormalizeClientModel(serviceClient); codeGenerator.Generate(serviceClient).GetAwaiter().GetResult(); } catch (Exception exception) { throw ErrorManager.CreateError(exception, Resources.ErrorSavingGeneratedCode, exception.Message); } }
public void TestSettingsFromSwagger() { var settings = new Settings { Namespace = "Test", Modeler = "Swagger", CodeGenerator = "CSharp", Input = Path.Combine("Swagger", "swagger-x-ms-code-generation-settings.json"), Header = "NONE" }; var modeler = ExtensionsLoader.GetModeler(settings); var client = modeler.Build(); var codeGenerator = ExtensionsLoader.GetCodeGenerator(settings) as CSharpCodeGenerator; settings.Validate(); Assert.Equal("MIT", settings.Header); Assert.Equal(true, codeGenerator.InternalConstructors); }