Skip to content

Commit d44b997

Browse files
committed
Introduce dedicated flag for client generation using MS http client factory
1 parent 6cc04c7 commit d44b997

8 files changed

Lines changed: 14 additions & 6 deletions

File tree

src/Dibix.Sdk.CodeGeneration/Configuration/CodeGenerationConfiguration.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ public sealed class CodeGenerationConfiguration
2020
public string BaseUrl { get; set; }
2121
public string Description { get; set; }
2222
public bool EnableExperimentalFeatures { get; set; }
23+
public bool UseMicrosoftHttpClient { get; set; }
2324
public ConfigurationTemplates ConfigurationTemplates { get; } = new ConfigurationTemplates();
2425
public ICollection<TaskItem> Source { get; } = new Collection<TaskItem>();
2526
public ICollection<TaskItem> Contracts { get; } = new Collection<TaskItem>();

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ protected override void WriteController(CodeGenerationContext context, CSharpSta
2121
{
2222
context.AddReference<HttpClient>();
2323

24-
if (context.Model.EnableExperimentalFeatures)
24+
if (context.Model.UseMicrosoftHttpClient)
2525
context.AddUsing("IHttpClientFactory = System.Net.Http.IHttpClientFactory");
2626

2727
string className = $"{controller.Name}Service";
@@ -117,7 +117,7 @@ private string GenerateMethodBody(ControllerDefinition controller, ActionDefinit
117117
StringWriter writer = new StringWriter();
118118
writer.Write($"using ({nameof(HttpClient)} client = _httpClientFactory.CreateClient(_httpClientName");
119119

120-
if (!context.Model.EnableExperimentalFeatures)
120+
if (!context.Model.UseMicrosoftHttpClient)
121121
writer.Write(", BaseAddress");
122122

123123
writer.WriteLine("))")

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ public ServerCodeGenerator(CodeGenerationModel model, ISchemaRegistry schemaRegi
1313
#region Overrides
1414
protected override IEnumerable<ArtifactWriterBase> SelectWriters(CodeGenerationModel model)
1515
{
16-
bool accessorOnly = model.EnableExperimentalFeatures;
1716
const CodeGenerationOutputFilter outputFilter = CodeGenerationOutputFilter.Local;
1817
yield return new DaoExecutorWriter(model, outputFilter);
1918
yield return new DaoExecutorInputClassWriter(model, outputFilter);

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ public class CodeGenerationModel : IPersistedCodeGenerationModel
1717
public CommandTextFormatting CommandTextFormatting { get; set; }
1818
public string BaseUrl { get; set; }
1919
public bool EnableExperimentalFeatures { get; set; }
20+
public bool UseMicrosoftHttpClient { get; set; }
2021
public IList<ControllerDefinition> Controllers { get; }
2122
public IList<SecurityScheme> SecuritySchemes { get; }
2223
public ICollection<SchemaDefinition> Schemas { get; }

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ CodeGenerationConfiguration configuration
3535
DefaultOutputName = configuration.DefaultOutputName,
3636
ClientOutputName = configuration.ClientOutputName,
3737
BaseUrl = configuration.BaseUrl,
38-
EnableExperimentalFeatures = configuration.EnableExperimentalFeatures
38+
EnableExperimentalFeatures = configuration.EnableExperimentalFeatures,
39+
UseMicrosoftHttpClient = configuration.UseMicrosoftHttpClient
3940
};
4041

4142
ITypeResolverFacade typeResolver = new TypeResolverFacade(logger);

src/Dibix.Sdk/Tasks/SqlCoreTask.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ namespace Dibix.Sdk
3636
[TaskProperty("LimitDdlStatements", TaskPropertyType.Boolean, Category = GlobalCategory)]
3737
[TaskProperty("PreventDmlReferences", TaskPropertyType.Boolean, Category = GlobalCategory)]
3838
[TaskProperty("EnableExperimentalFeatures", TaskPropertyType.Boolean, Category = ArtifactGenerationCategory)]
39+
[TaskProperty("UseMicrosoftHttpClient", TaskPropertyType.Boolean, Category = ArtifactGenerationCategory)]
3940
[TaskProperty("DatabaseSchemaProviderName", TaskPropertyType.String, Category = GlobalCategory)]
4041
[TaskProperty("ModelCollation", TaskPropertyType.String, Category = GlobalCategory)]
4142
[TaskProperty("SqlReferencePath", TaskPropertyType.Items, Category = GlobalCategory)]
@@ -76,7 +77,8 @@ private partial bool Execute()
7677
Title = _configuration.ArtifactGeneration.Title,
7778
Version = _configuration.ArtifactGeneration.Version,
7879
Description = _configuration.ArtifactGeneration.Description,
79-
EnableExperimentalFeatures = _configuration.ArtifactGeneration.EnableExperimentalFeatures
80+
EnableExperimentalFeatures = _configuration.ArtifactGeneration.EnableExperimentalFeatures,
81+
UseMicrosoftHttpClient = _configuration.ArtifactGeneration.UseMicrosoftHttpClient
8082
};
8183
codeGenerationConfiguration.Source.AddRange(_configuration.SqlCore.Source);
8284
codeGenerationConfiguration.Contracts.AddRange(_configuration.ArtifactGeneration.Contracts);

src/Dibix.Sdk/targets/Dibix.Sdk.targets

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,8 @@ $(_ServerCompilationArtifactReference)" />
308308
$(PreventDmlReferences)" />
309309
<_SqlCoreInputItem Include="EnableExperimentalFeatures
310310
$(EnableExperimentalFeatures)" />
311+
<_SqlCoreInputItem Include="UseMicrosoftHttpClient
312+
$(UseMicrosoftHttpClient)" />
311313
<_SqlCoreInputItem Include="SqlReferencePath
312314
$(_SqlReferencePath)" />
313315
</ItemGroup>
@@ -662,7 +664,7 @@ $(_SqlReferencePath)" />
662664
<PackageReference Include="Microsoft.AspNet.WebApi.Client" Version="5.2.9" ExcludeAssets="runtime" />
663665
</ItemGroup>
664666
665-
<ItemGroup Condition="'$(EnableExperimentalFeatures)' == 'true'">
667+
<ItemGroup Condition="'$(UseMicrosoftHttpClient)' == 'true'">
666668
<PackageReference Include="Microsoft.Extensions.Http" Version="6.0.0" ExcludeAssets="runtime" />
667669
</ItemGroup>
668670

tests/Dibix.Sdk.Tests/CodeGeneration/CodeGenerationTaskTests.Base.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,8 @@ Dibix.Sdk.Tests API description
8383
True
8484
EnableExperimentalFeatures
8585
{enableExperimentalFeatures /* TODO: Add test support for inspecting DBX file */}
86+
UseMicrosoftHttpClient
87+
False
8688
SqlReferencePath");
8789
InputConfiguration inputConfiguration = InputConfiguration.Parse(inputConfigurationPath);
8890
SqlCoreTask task = new SqlCoreTask(logger, inputConfiguration);

0 commit comments

Comments
 (0)