public void GenerateFiles(IDocumentWriter documentWriter) { // API clients/endpoints var resourcesGenerator = new CSharpApiModelResourceGenerator(_codeGenerationContext); foreach (var apiResource in _codeGenerationContext.GetResources()) { WriteToDocument(documentWriter, apiResource.ToCSharpIdentifierSingular() + "Client.generated.cs", resourcesGenerator.GenerateResourceDefinition(apiResource)); } // URL parameters var urlParametersGenerator = new CSharpApiModelUrlParameterGenerator(_codeGenerationContext); foreach (var apiUrlParameter in _codeGenerationContext.GetUrlParameters()) { WriteToDocument(documentWriter, "UrlParams/" + apiUrlParameter.ToCSharpClassName() + ".generated.cs", urlParametersGenerator.GenerateUrlParameterDefinition(apiUrlParameter)); } // Enums var enumGenerator = new CSharpApiModelEnumGenerator(); foreach (var apiEnum in _codeGenerationContext.GetEnums()) { WriteToDocument(documentWriter, "Enums/" + apiEnum.ToCSharpClassName() + ".generated.cs", enumGenerator.GenerateEnumDefinition(apiEnum)); } // Dtos var dtoGenerator = new CSharpApiModelDtoGenerator(_codeGenerationContext); foreach (var apiDto in _codeGenerationContext.GetDtos()) { WriteToDocument(documentWriter, "Dtos/" + apiDto.ToCSharpClassName() + ".generated.cs", dtoGenerator.GenerateDtoDefinition(apiDto)); } // Partial extensions var partialExtensionsGenerator = new CSharpPartialExtensionsGenerator(_codeGenerationContext); foreach (var apiDto in _codeGenerationContext.GetDtos()) { WriteToDocument(documentWriter, "Partials/" + apiDto.ToCSharpClassName() + "PartialBuilder.generated.cs", partialExtensionsGenerator.GeneratePartialClassFor(apiDto), apiDto.ToCSharpClassName() + "PartialBuilder"); } // Menu ids var menuIdsGenerator = new CSharpApiModelMenuIdGenerator(_codeGenerationContext); WriteToDocument(documentWriter, "MenuIds.generated.cs", menuIdsGenerator.GenerateMenuIds(_codeGenerationContext.GetMenuIds())); }