Files
csharp/gen/LibKubernetesGenerator/ModelGenerator.cs

31 lines
864 B
C#
Raw Normal View History

using System.IO;
using Microsoft.CodeAnalysis;
using NSwag;
using Nustache.Core;
namespace LibKubernetesGenerator
{
internal class ModelGenerator
{
private readonly ClassNameHelper classNameHelper;
public ModelGenerator(ClassNameHelper classNameHelper)
{
this.classNameHelper = classNameHelper;
}
public void Generate(OpenApiDocument swagger, GeneratorExecutionContext context)
{
foreach (var kv in swagger.Definitions)
{
var def = kv.Value;
var clz = classNameHelper.GetClassNameForSchemaDefinition(def);
context.RenderToContext(
"Model.cs.template",
new { clz, def, properties = def.Properties.Values },
$"Models_{clz}.g.cs");
}
}
}
}