in src/JetBrains.Space.Generator/CodeGeneration/CSharp/Generators/CSharpApiModelGenerator.cs [14:70]
public void GenerateFiles(
IDocumentWriter clientDocumentWriter,
IDocumentWriter commonDocumentWriter)
{
// API clients/endpoints
var resourcesGenerator = new CSharpApiModelResourceGenerator(_codeGenerationContext);
foreach (var apiResource in _codeGenerationContext.GetResources())
{
WriteToDocument(clientDocumentWriter,
apiResource.ToCSharpIdentifierSingular() + "Client.generated.cs",
resourcesGenerator.GenerateResourceDefinition(apiResource));
}
// URL parameters
var urlParametersGenerator = new CSharpApiModelUrlParameterGenerator(_codeGenerationContext);
foreach (var apiUrlParameter in _codeGenerationContext.GetUrlParameters())
{
WriteToDocument(clientDocumentWriter,
"UrlParams/" + apiUrlParameter.ToCSharpClassName() + ".generated.cs",
urlParametersGenerator.GenerateUrlParameterDefinition(apiUrlParameter));
}
// Enums
var enumGenerator = new CSharpApiModelEnumGenerator();
foreach (var apiEnum in _codeGenerationContext.GetEnums())
{
WriteToDocument(clientDocumentWriter,
"Enums/" + apiEnum.ToCSharpClassName() + ".generated.cs",
enumGenerator.GenerateEnumDefinition(apiEnum));
}
// Dtos
var dtoGenerator = new CSharpApiModelDtoGenerator(_codeGenerationContext);
foreach (var apiDto in _codeGenerationContext.GetDtos())
{
WriteToDocument(clientDocumentWriter,
"Dtos/" + apiDto.ToCSharpClassName() + ".generated.cs",
dtoGenerator.GenerateDtoDefinition(apiDto));
}
// Partial extensions
var partialExtensionsGenerator = new CSharpPartialExtensionsGenerator(_codeGenerationContext);
foreach (var apiDto in _codeGenerationContext.GetDtos()
.Where(dto => !_codeGenerationContext.IsRequestBodyDto(dto.Id)))
{
WriteToDocument(clientDocumentWriter,
"Partials/" + apiDto.ToCSharpClassName() + "PartialBuilder.generated.cs",
partialExtensionsGenerator.GeneratePartialClassFor(apiDto),
apiDto.ToCSharpClassName() + "PartialBuilder");
}
// Version info
var deploymentInfoGenerator = new CSharpDeploymentInfoGenerator();
WriteToDocument(commonDocumentWriter,
"SdkInfo.generated.cs",
deploymentInfoGenerator.GenerateSdkInfo(_codeGenerationContext.DeploymentInfo));
}