Skip to content

Commit 42f6fb4

Browse files
committed
Cleaned up MSBuild targets and (re)added model persistence
1 parent 647b867 commit 42f6fb4

16 files changed

Lines changed: 107 additions & 188 deletions

src/Dibix.Sdk.Cli/CodeGenerationTaskRunner.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,13 @@ protected override void Execute(InputConfiguration configuration)
1515
, projectDirectory: configuration.GetSingleValue<string>("ProjectDirectory")
1616
, productName: configuration.GetSingleValue<string>("ProductName")
1717
, areaName: configuration.GetSingleValue<string>("AreaName")
18-
, outputName: configuration.GetSingleValue<string>("OutputName")
1918
, title: configuration.GetSingleValue<string>("Title")
2019
, version: configuration.GetSingleValue<string>("Version")
2120
, description: configuration.GetSingleValue<string>("Description")
2221
, baseUrl: configuration.GetSingleValue<string>("BaseUrl")
23-
, defaultOutputFilePath: configuration.GetSingleValue<string>("DefaultOutputFilePath")
24-
, endpointOutputFilePath: configuration.GetSingleValue<string>("EndpointOutputFilePath")
25-
, clientOutputFilePath: configuration.GetSingleValue<string>("ClientOutputFilePath")
22+
, outputDirectory: configuration.GetSingleValue<string>("OutputDirectory")
23+
, defaultOutputName: configuration.GetSingleValue<string>("DefaultOutputName")
24+
, clientOutputName: configuration.GetSingleValue<string>("ClientOutputName")
2625
, externalAssemblyReferenceDirectory: configuration.GetSingleValue<string>("ExternalAssemblyReferenceDir")
2726
, source: configuration.GetItems("Source")
2827
, contracts: configuration.GetItems("Contracts")

src/Dibix.Sdk.Cli/SqlCoreTaskRunner.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,12 @@ protected override void Execute(InputConfiguration configuration)
1616
, resultsFile: configuration.GetSingleValue<string>("ResultsFile")
1717
, productName: configuration.GetSingleValue<string>("ProductName")
1818
, areaName: configuration.GetSingleValue<string>("AreaName")
19-
, outputName: configuration.GetSingleValue<string>("OutputName")
2019
, title: configuration.GetSingleValue<string>("Title")
2120
, version: configuration.GetSingleValue<string>("Version")
2221
, description: configuration.GetSingleValue<string>("Description")
23-
, defaultOutputFilePath: configuration.GetSingleValue<string>("DefaultOutputFilePath")
24-
, endpointOutputFilePath: configuration.GetSingleValue<string>("EndpointOutputFilePath")
25-
, clientOutputFilePath: configuration.GetSingleValue<string>("ClientOutputFilePath")
22+
, outputDirectory: configuration.GetSingleValue<string>("OutputDirectory")
23+
, defaultOutputName: configuration.GetSingleValue<string>("DefaultOutputName")
24+
, clientOutputName: configuration.GetSingleValue<string>("ClientOutputName")
2625
, externalAssemblyReferenceDirectory: configuration.GetSingleValue<string>("ExternalAssemblyReferenceDir")
2726
, source: configuration.GetItems("Source")
2827
, scriptSource: configuration.GetItems("ScriptSource")

src/Dibix.Sdk/CodeGeneration/Model/CodeGenerationModel.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ public class CodeGenerationModel
1212
public string Title { get; set; }
1313
public string Version { get; set; }
1414
public string Description { get; set; }
15-
public string DefaultOutputFilePath { get; set; }
16-
public string EndpointOutputFilePath { get; set; }
17-
public string ClientOutputFilePath { get; set; }
15+
public string OutputDirectory { get; set; }
16+
public string DefaultOutputName { get; set; }
17+
public string ClientOutputName { get; set; }
1818
public EndpointConfiguration EndpointConfiguration { get; set; }
1919
public CommandTextFormatting CommandTextFormatting { get; set; }
2020
public ICollection<ContractDefinition> Contracts { get; }

src/Dibix.Sdk/CodeGeneration/Model/CodeGenerationModelLoader.cs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,13 @@ string projectName
1414
, string projectDirectory
1515
, string productName
1616
, string areaName
17-
, string outputName
1817
, string title
1918
, string version
2019
, string description
2120
, EndpointConfiguration endpointConfiguration
22-
, string defaultOutputFilePath
23-
, string endpointOutputFilePath
24-
, string clientOutputFilePath
21+
, string outputDirectory
22+
, string defaultOutputName
23+
, string clientOutputName
2524
, string externalAssemblyReferenceDirectory
2625
, ICollection<TaskItem> source
2726
, IEnumerable<TaskItem> contracts
@@ -43,7 +42,7 @@ string projectName
4342
)
4443
{
4544
string rootNamespace = NamespaceUtility.BuildRootNamespace(productName, areaName);
46-
string className = outputName.Replace(".", String.Empty);
45+
string className = defaultOutputName.Replace(".", String.Empty);
4746

4847
ICollection<string> normalizedSources = source.Select(x => x.GetFullPath()).ToArray();
4948
IEnumerable<string> normalizedContracts = contracts.Select(x => x.GetFullPath());
@@ -61,9 +60,9 @@ string projectName
6160
EndpointConfiguration = endpointConfiguration,
6261
RootNamespace = rootNamespace,
6362
DefaultClassName = className,
64-
DefaultOutputFilePath = defaultOutputFilePath,
65-
EndpointOutputFilePath = endpointOutputFilePath,
66-
ClientOutputFilePath = clientOutputFilePath,
63+
OutputDirectory = outputDirectory,
64+
DefaultOutputName = defaultOutputName,
65+
ClientOutputName = clientOutputName,
6766
EnableExperimentalFeatures = enableExperimentalFeatures
6867
};
6968

src/Dibix.Sdk/CodeGeneration/Output/ClientCodeArtifactGenerationUnit.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ namespace Dibix.Sdk.CodeGeneration
44
{
55
internal sealed class ClientCodeArtifactGenerationUnit : CodeArtifactGenerationUnit<ClientCodeGenerator>
66
{
7-
public override bool ShouldGenerate(CodeGenerationModel model) => !String.IsNullOrEmpty(model.ClientOutputFilePath);
8-
protected override string GetOutputFilePath(CodeGenerationModel model) => model.ClientOutputFilePath;
7+
public override bool ShouldGenerate(CodeGenerationModel model) => !String.IsNullOrEmpty(model.ClientOutputName);
8+
protected override string GetOutputName(CodeGenerationModel model) => model.ClientOutputName;
99
protected override ClientCodeGenerator CreateGenerator(CodeGenerationModel model, ISchemaRegistry schemaRegistry, ILogger logger) => new ClientCodeGenerator(model, logger, schemaRegistry);
1010
}
1111
}

src/Dibix.Sdk/CodeGeneration/Output/CodeArtifactGenerationUnit.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public override bool Generate(CodeGenerationModel model, ISchemaRegistry schemaR
1818

1919
if (!logger.HasLoggedErrors)
2020
{
21-
string outputFilePath = this.GetOutputFilePath(model);
21+
string outputFilePath = Path.Combine(model.OutputDirectory, $"{this.GetOutputName(model)}.cs");
2222
File.WriteAllText(outputFilePath, generated);
2323
return true;
2424
}
@@ -28,6 +28,6 @@ public override bool Generate(CodeGenerationModel model, ISchemaRegistry schemaR
2828

2929
protected abstract TGenerator CreateGenerator(CodeGenerationModel model, ISchemaRegistry schemaRegistry, ILogger logger);
3030

31-
protected abstract string GetOutputFilePath(CodeGenerationModel model);
31+
protected abstract string GetOutputName(CodeGenerationModel model);
3232
}
3333
}

src/Dibix.Sdk/CodeGeneration/Output/CodeArtifactsGenerator.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ internal sealed class CodeArtifactsGenerator : ICodeArtifactsGenerator
1010
, typeof(EndpointCodeArtifactGenerationUnit)
1111
, typeof(ClientCodeArtifactGenerationUnit)
1212
, typeof(OpenApiArtifactsGenerationUnit)
13+
, typeof(PersistArtifactModelUnit)
1314
};
1415

1516
public bool Generate(CodeGenerationModel model, ISchemaRegistry schemaRegistry, ILogger logger)

src/Dibix.Sdk/CodeGeneration/Output/CodeGenerationTask.cs

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,13 @@ string projectName
1212
, string projectDirectory
1313
, string productName
1414
, string areaName
15-
, string outputName
1615
, string title
1716
, string version
1817
, string description
1918
, string baseUrl
20-
, string defaultOutputFilePath
21-
, string endpointOutputFilePath
22-
, string clientOutputFilePath
19+
, string outputDirectory
20+
, string defaultOutputName
21+
, string clientOutputName
2322
, string externalAssemblyReferenceDirectory
2423
, ICollection<TaskItem> source
2524
, IEnumerable<TaskItem> contracts
@@ -46,14 +45,13 @@ string projectName
4645
, projectDirectory
4746
, productName
4847
, areaName
49-
, outputName
5048
, title
5149
, version
5250
, description
5351
, new EndpointConfiguration(baseUrl)
54-
, defaultOutputFilePath
55-
, endpointOutputFilePath
56-
, clientOutputFilePath
52+
, outputDirectory
53+
, defaultOutputName
54+
, clientOutputName
5755
, externalAssemblyReferenceDirectory
5856
, source
5957
, contracts
@@ -81,14 +79,13 @@ string projectName
8179
, string projectDirectory
8280
, string productName
8381
, string areaName
84-
, string outputName
8582
, string title
8683
, string version
8784
, string description
8885
, EndpointConfiguration endpointConfiguration
89-
, string defaultOutputFilePath
90-
, string endpointOutputFilePath
91-
, string clientOutputFilePath
86+
, string outputDirectory
87+
, string defaultOutputName
88+
, string clientOutputName
9289
, string externalAssemblyReferenceDirectory
9390
, ICollection<TaskItem> source
9491
, IEnumerable<TaskItem> contracts
@@ -116,14 +113,13 @@ string projectName
116113
, projectDirectory
117114
, productName
118115
, areaName
119-
, outputName
120116
, title
121117
, version
122118
, description
123119
, endpointConfiguration
124-
, defaultOutputFilePath
125-
, endpointOutputFilePath
126-
, clientOutputFilePath
120+
, outputDirectory
121+
, defaultOutputName
122+
, clientOutputName
127123
, externalAssemblyReferenceDirectory
128124
, source
129125
, contracts
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
using System;
1+
using System.Linq;
22

33
namespace Dibix.Sdk.CodeGeneration
44
{
55
internal sealed class EndpointCodeArtifactGenerationUnit : CodeArtifactGenerationUnit<EndpointCodeGenerator>
66
{
7-
public override bool ShouldGenerate(CodeGenerationModel model) => !String.IsNullOrEmpty(model.EndpointOutputFilePath);
8-
protected override string GetOutputFilePath(CodeGenerationModel model) => model.EndpointOutputFilePath;
7+
public override bool ShouldGenerate(CodeGenerationModel model) => model.Controllers.Any();
8+
protected override string GetOutputName(CodeGenerationModel model) => model.AreaName;
99
protected override EndpointCodeGenerator CreateGenerator(CodeGenerationModel model, ISchemaRegistry schemaRegistry, ILogger logger) => new EndpointCodeGenerator(model, logger, schemaRegistry);
1010
}
1111
}

src/Dibix.Sdk/CodeGeneration/Output/OpenApiArtifactsGenerationUnit.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,13 @@ public override bool Generate(CodeGenerationModel model, ISchemaRegistry schemaR
2222

2323
OpenApiDocument document = OpenApiGenerator.Generate(model, schemaRegistry, logger);
2424

25-
string targetDirectory = Path.GetDirectoryName(model.DefaultOutputFilePath);
26-
27-
string jsonFilePath = BuildOutputPath(targetDirectory, model.AreaName, "json");
25+
string jsonFilePath = BuildOutputPath(model.OutputDirectory, model.AreaName, "json");
2826
using (Stream stream = File.Open(jsonFilePath, FileMode.Create))
2927
{
3028
document.SerializeAsJson(stream, OpenApiSpecVersion.OpenApi3_0);
3129
}
3230

33-
string yamlFilePath = BuildOutputPath(targetDirectory, model.AreaName, "yml");
31+
string yamlFilePath = BuildOutputPath(model.OutputDirectory, model.AreaName, "yml");
3432
using (Stream stream = File.Open(yamlFilePath, FileMode.Create))
3533
{
3634
document.SerializeAsYaml(stream, OpenApiSpecVersion.OpenApi3_0);

0 commit comments

Comments
 (0)