protected virtual async Task OnInstallPackagesAsync( AsyncPackage package, Project project, EnterOpenApiSpecDialogResult dialogResult) { await project.InstallMissingPackagesAsync(package, CodeGenerator); }
public static async Task <string> CreateNSwagStudioFileAsync( EnterOpenApiSpecDialogResult enterOpenApiSpecDialogResult, INSwagStudioOptions options = null, string outputNamespace = null) { var specifications = enterOpenApiSpecDialogResult.OpenApiSpecification; var outputFilename = enterOpenApiSpecDialogResult.OutputFilename; var url = enterOpenApiSpecDialogResult.Url; var openApiDocument = url.EndsWith("yaml") || url.EndsWith("yml") ? await OpenApiYamlDocument.FromUrlAsync(url) : await OpenApiDocument.FromJsonAsync(specifications); var className = options?.UseDocumentTitle ?? true ? openApiDocument.GenerateClassName() : outputFilename; return(new { Runtime = "Default", SwaggerGenerator = new { FromSwagger = GetFromSwagger(enterOpenApiSpecDialogResult, specifications) }, CodeGenerators = new { SwaggerToCSharpClient = new { ClassName = className, InjectHttpClient = options?.InjectHttpClient ?? true, GenerateClientInterfaces = options?.GenerateClientInterfaces ?? true, GenerateDtoTypes = options?.GenerateDtoTypes ?? true, UseBaseUrl = options?.UseBaseUrl ?? false, OperationGenerationMode = "MultipleClientsFromOperationId", GenerateResponseClasses = options?.GenerateResponseClasses ?? true, GenerateJsonMethods = options?.GenerateJsonMethods ?? true, RequiredPropertiesMustBeDefined = options?.RequiredPropertiesMustBeDefined ?? true, ClassStyle = options?.ClassStyle ?? CSharpClassStyle.Poco, GenerateDefaultValues = options?.GenerateDefaultValues ?? true, GenerateDataAnnotations = options?.GenerateDataAnnotations ?? true, Namespace = outputNamespace ?? "GeneratedCode", Output = $"{className}.cs" } } } .ToJson()); }
private static object GetFromSwagger( EnterOpenApiSpecDialogResult enterOpenApiSpecDialogResult, string specifications) { var url = enterOpenApiSpecDialogResult.Url; if (url.EndsWith("yaml")) { return new { Yaml = specifications, Url = url } } ; return(new { Json = specifications, Url = url }); } }
protected override async Task OnInstallPackagesAsync( AsyncPackage package, Project project, EnterOpenApiSpecDialogResult dialogResult) { var url = dialogResult.Url; const StringComparison comparisonType = StringComparison.OrdinalIgnoreCase; var document = url.EndsWith("yaml", comparisonType) || url.EndsWith("yml", comparisonType) ? await OpenApiYamlDocument.FromYamlAsync(dialogResult.OpenApiSpecification) : await OpenApiDocument.FromJsonAsync(dialogResult.OpenApiSpecification); var codeGenerator = GetSupportedCodeGenerator(document); await project.InstallMissingPackagesAsync(package, codeGenerator); if (codeGenerator == SupportedCodeGenerator.AutoRestV3) { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); project.Save(); await project.UpdatePropertyGroupsAsync(AutoRestConstants.PropertyGroups); } }