From 220d4630ce4872c3aa9e091769ac1dce72400c89 Mon Sep 17 00:00:00 2001 From: PawelZ Date: Wed, 24 Aug 2016 15:51:00 +0200 Subject: [PATCH] Client classes in FileTemplateModel --- .../TypeScript/Models/FileTemplateModel.cs | 10 +++++++--- .../TypeScript/Templates/FileTemplate.Extensions.cs | 5 +++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/NSwag.CodeGeneration/CodeGenerators/TypeScript/Models/FileTemplateModel.cs b/src/NSwag.CodeGeneration/CodeGenerators/TypeScript/Models/FileTemplateModel.cs index 6e2845b6f1..6d2c0b65c7 100644 --- a/src/NSwag.CodeGeneration/CodeGenerators/TypeScript/Models/FileTemplateModel.cs +++ b/src/NSwag.CodeGeneration/CodeGenerators/TypeScript/Models/FileTemplateModel.cs @@ -29,9 +29,10 @@ public FileTemplateModel(string clientCode, IEnumerable clientClasses, S _settings = settings; _resolver = resolver; _clientCode = clientCode; + ClientClasses = clientClasses.ToArray(); Types = GenerateDtoTypes(); - ExtensionCodeAfter = GenerateExtensionCodeAfter(clientClasses); + ExtensionCodeAfter = GenerateExtensionCodeAfter(); } /// Gets a value indicating whether the generated code is for Angular 2. @@ -61,14 +62,17 @@ public FileTemplateModel(string clientCode, IEnumerable clientClasses, S /// Gets the namespace. public string Namespace => _settings.TypeScriptGeneratorSettings.Namespace; + /// Table containing list of the generated classes. + public string[] ClientClasses { get; } + private string GenerateDtoTypes() { return _settings.GenerateDtoTypes ? _resolver.GenerateTypes(_settings.TypeScriptGeneratorSettings.ProcessedExtensionCode) : string.Empty; } - private string GenerateExtensionCodeAfter(IEnumerable clientClasses) + private string GenerateExtensionCodeAfter() { - var clientClassesVariable = "{" + string.Join(", ", clientClasses.Select(c => "'" + c + "': " + c)) + "}"; + var clientClassesVariable = "{" + string.Join(", ", ClientClasses.Select(c => "'" + c + "': " + c)) + "}"; return _settings.TypeScriptGeneratorSettings.ProcessedExtensionCode.CodeAfter.Replace("{clientClasses}", clientClassesVariable); } } diff --git a/src/NSwag.CodeGeneration/CodeGenerators/TypeScript/Templates/FileTemplate.Extensions.cs b/src/NSwag.CodeGeneration/CodeGenerators/TypeScript/Templates/FileTemplate.Extensions.cs index 22ff9d7f94..f2eb55076d 100644 --- a/src/NSwag.CodeGeneration/CodeGenerators/TypeScript/Templates/FileTemplate.Extensions.cs +++ b/src/NSwag.CodeGeneration/CodeGenerators/TypeScript/Templates/FileTemplate.Extensions.cs @@ -1,4 +1,5 @@ using NJsonSchema.CodeGeneration; +using NSwag.CodeGeneration.CodeGenerators.TypeScript.Models; namespace NSwag.CodeGeneration.CodeGenerators.TypeScript.Templates { @@ -6,10 +7,10 @@ internal partial class FileTemplate : ITemplate { public FileTemplate(object model) { - Model = model; + Model = (FileTemplateModel)model; } - public dynamic Model { get; } + public FileTemplateModel Model { get; } public string Render() {