Skip to content

Commit ddfe185

Browse files
Made ASP.NET DI work with CMInfrastructure (Azure#47473)
* made DI work with CMInfrastructure * updated api file
1 parent 3c61d4a commit ddfe185

File tree

8 files changed

+27
-17
lines changed

8 files changed

+27
-17
lines changed

eng/Packages.Data.props

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,10 @@
194194
<PackageReference Update="NUnit" Version="3.13.2" />
195195
</ItemGroup>
196196

197+
<ItemGroup Condition="$(MSBuildProjectName.StartsWith('Azure.Provisioning.CloudMachine'))">
198+
<PackageReference Update="Microsoft.Extensions.Hosting.Abstractions" Version="9.0.0" />
199+
</ItemGroup>
200+
197201
<!--
198202
Dependency versions for Track 2, Microsoft.* libraries.
199203
These are dependencies for Track 2 integration packages

sdk/cloudmachine/Azure.CloudMachine.Web/api/Azure.CloudMachine.Web.net8.0.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ namespace Azure.CloudMachine
22
{
33
public static partial class CloudMachineExtensions
44
{
5-
public static void AddCloudMachine(this Microsoft.Extensions.Hosting.IHostApplicationBuilder builder, Azure.Core.ClientWorkspace workspace) { }
65
public static void MapCloudMachineApplication<T>(this Microsoft.AspNetCore.Builder.WebApplication application) where T : class { }
76
public static void Map<T>(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder routeBuilder, T serviceImplementation) where T : class { }
87
public static System.Threading.Tasks.Task UploadFormAsync(this Azure.CloudMachine.StorageServices storage, Microsoft.AspNetCore.Http.HttpRequest multiPartFormData) { throw null; }

sdk/cloudmachine/Azure.CloudMachine.Web/src/CloudMachineExtensions.cs

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -34,17 +34,6 @@ public static void MapCloudMachineApplication<T>(this WebApplication application
3434
application.Map<T>(service);
3535
}
3636

37-
/// <summary>
38-
/// Adds a CloudMachine client to the service collection.
39-
/// </summary>
40-
/// <param name="builder"></param>
41-
/// <param name="workspace"></param>
42-
public static void AddCloudMachine(this IHostApplicationBuilder builder, ClientWorkspace workspace)
43-
{
44-
var connections = workspace.GetAllConnectionOptions();
45-
builder.Services.AddSingleton(new CloudMachineClient(connections));
46-
}
47-
4837
/// <summary>
4938
/// Uploads a document to the storage service.
5039
/// </summary>

sdk/cloudmachine/Azure.CloudMachine/tests/ConnectionTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ public void ConfigurationDemo()
7070
infra.AddFeature(new OpenAIModelFeature("gpt-35-turbo", "0125"));
7171

7272
IConfiguration configuration = new ConfigurationBuilder()
73-
.AddCloudMachineInfrastructure(infra)
73+
.AddCloudMachineConfiguration(infra)
7474
.Build();
7575

7676
CloudMachineClient client = new(configuration);

sdk/cloudmachine/Azure.Provisioning.CloudMachine/api/Azure.Provisioning.CloudMachine.net8.0.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ public void AddResource(Azure.Provisioning.Primitives.NamedProvisionableConstruc
4343
}
4444
public static partial class CloudMachineInfrastructureConfiguration
4545
{
46-
public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddCloudMachineInfrastructure(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, Azure.CloudMachine.CloudMachineInfrastructure cm) { throw null; }
46+
public static Microsoft.Extensions.Hosting.IHostApplicationBuilder AddCloudMachine(this Microsoft.Extensions.Hosting.IHostApplicationBuilder builder, Azure.CloudMachine.CloudMachineInfrastructure cm) { throw null; }
47+
public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddCloudMachineConfiguration(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, Azure.CloudMachine.CloudMachineInfrastructure cm) { throw null; }
4748
}
4849
}
4950
namespace Azure.CloudMachine.AppService

sdk/cloudmachine/Azure.Provisioning.CloudMachine/api/Azure.Provisioning.CloudMachine.netstandard2.0.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ public void AddResource(Azure.Provisioning.Primitives.NamedProvisionableConstruc
4343
}
4444
public static partial class CloudMachineInfrastructureConfiguration
4545
{
46-
public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddCloudMachineInfrastructure(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, Azure.CloudMachine.CloudMachineInfrastructure cm) { throw null; }
46+
public static Microsoft.Extensions.Hosting.IHostApplicationBuilder AddCloudMachine(this Microsoft.Extensions.Hosting.IHostApplicationBuilder builder, Azure.CloudMachine.CloudMachineInfrastructure cm) { throw null; }
47+
public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddCloudMachineConfiguration(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, Azure.CloudMachine.CloudMachineInfrastructure cm) { throw null; }
4748
}
4849
}
4950
namespace Azure.CloudMachine.AppService

sdk/cloudmachine/Azure.Provisioning.CloudMachine/src/Azure.Provisioning.CloudMachine.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
<PackageReference Include="Azure.Provisioning.ServiceBus" />
2121
<PackageReference Include="Azure.Provisioning.EventGrid" />
2222
<PackageReference Include="Azure.Provisioning.AppService" />
23+
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" />
2324
</ItemGroup>
2425

2526
</Project>

sdk/cloudmachine/Azure.Provisioning.CloudMachine/src/CloudMachineInfrastructure/CloudMachineInfrastructure.cs

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
using Azure.Provisioning.Primitives;
1515
using Azure.Provisioning.Roles;
1616
using Microsoft.Extensions.Configuration;
17+
using Microsoft.Extensions.DependencyInjection;
18+
using Microsoft.Extensions.Hosting;
1719

1820
namespace Azure.CloudMachine;
1921

@@ -137,15 +139,28 @@ public ProvisioningPlan Build(ProvisioningBuildOptions? context = default)
137139
public static class CloudMachineInfrastructureConfiguration
138140
{
139141
/// <summary>
140-
/// Adds a connection to the collection.
142+
/// Adds a connections and CM ID to the config system.
141143
/// </summary>
142144
/// <param name="builder"></param>
143145
/// <param name="cm"></param>
144146
/// <returns></returns>
145-
public static IConfigurationBuilder AddCloudMachineInfrastructure(this IConfigurationBuilder builder, CloudMachineInfrastructure cm)
147+
public static IConfigurationBuilder AddCloudMachineConfiguration(this IConfigurationBuilder builder, CloudMachineInfrastructure cm)
146148
{
147149
builder.AddCloudMachineConnections(cm.Connections);
148150
builder.AddCloudMachineId(cm.Id);
149151
return builder;
150152
}
153+
154+
/// <summary>
155+
/// Adds the CloudMachine to DI.
156+
/// </summary>
157+
/// <param name="builder"></param>
158+
/// <param name="cm"></param>
159+
/// <returns></returns>
160+
public static IHostApplicationBuilder AddCloudMachine(this IHostApplicationBuilder builder, CloudMachineInfrastructure cm)
161+
{
162+
builder.Configuration.AddCloudMachineConfiguration(cm);
163+
builder.Services.AddSingleton(new CloudMachineClient(cm.Connections));
164+
return builder;
165+
}
151166
}

0 commit comments

Comments
 (0)