Skip to content

Commit dd40481

Browse files
committed
Make schema name dynamically configurable in host.json
1 parent 9bc6e10 commit dd40481

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

src/DurableTask.SqlServer.AzureFunctions/SqlDurabilityOptions.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44
namespace DurableTask.SqlServer.AzureFunctions
55
{
66
using System;
7+
using Microsoft.Azure.WebJobs;
78
using Microsoft.Azure.WebJobs.Extensions.DurableTask;
9+
using Microsoft.Azure.WebJobs.Host;
810
using Microsoft.Data.SqlClient;
911
using Microsoft.Extensions.Configuration;
1012
using Microsoft.Extensions.Logging;
@@ -35,7 +37,8 @@ class SqlDurabilityOptions
3537

3638
internal SqlOrchestrationServiceSettings GetOrchestrationServiceSettings(
3739
DurableTaskOptions extensionOptions,
38-
IConnectionInfoResolver connectionStringResolver)
40+
IConnectionInfoResolver connectionStringResolver,
41+
INameResolver nameResolver)
3942
{
4043
if (connectionStringResolver == null)
4144
{
@@ -59,7 +62,9 @@ internal SqlOrchestrationServiceSettings GetOrchestrationServiceSettings(
5962
throw new ArgumentException("The provided connection string is invalid.", e);
6063
}
6164

62-
var settings = new SqlOrchestrationServiceSettings(connectionStringSection.Value, this.TaskHubName, this.SchemaName)
65+
string? resolvedSchemaName = this.SchemaName != null ? nameResolver.ResolveWholeString(this.SchemaName) : null;
66+
67+
var settings = new SqlOrchestrationServiceSettings(connectionStringSection.Value, this.TaskHubName, resolvedSchemaName)
6368
{
6469
CreateDatabaseIfNotExists = this.CreateDatabaseIfNotExists,
6570
LoggerFactory = this.LoggerFactory,

src/DurableTask.SqlServer.AzureFunctions/SqlDurabilityProviderFactory.cs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ namespace DurableTask.SqlServer.AzureFunctions
55
{
66
using System;
77
using System.Collections.Generic;
8+
using Microsoft.Azure.WebJobs;
89
using Microsoft.Azure.WebJobs.Extensions.DurableTask;
910
using Microsoft.Extensions.Logging;
1011
using Microsoft.Extensions.Options;
@@ -21,6 +22,7 @@ class SqlDurabilityProviderFactory : IDurabilityProviderFactory
2122
readonly DurableTaskOptions extensionOptions;
2223
readonly ILoggerFactory loggerFactory;
2324
readonly IConnectionInfoResolver connectionInfoResolver;
25+
readonly INameResolver nameResolver;
2426

2527
SqlDurabilityOptions? defaultOptions;
2628
SqlDurabilityProvider? defaultProvider;
@@ -37,11 +39,13 @@ class SqlDurabilityProviderFactory : IDurabilityProviderFactory
3739
public SqlDurabilityProviderFactory(
3840
IOptions<DurableTaskOptions> extensionOptions,
3941
ILoggerFactory loggerFactory,
40-
IConnectionInfoResolver connectionInfoResolver)
42+
IConnectionInfoResolver connectionInfoResolver,
43+
INameResolver nameResolver)
4144
{
4245
this.extensionOptions = extensionOptions?.Value ?? throw new ArgumentNullException(nameof(extensionOptions));
4346
this.loggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
4447
this.connectionInfoResolver = connectionInfoResolver ?? throw new ArgumentNullException(nameof(connectionInfoResolver));
48+
this.nameResolver = nameResolver ?? throw new ArgumentNullException(nameof(nameResolver));
4549
}
4650

4751
// Called by the Durable trigger binding infrastructure
@@ -85,9 +89,10 @@ public DurabilityProvider GetDurabilityProvider(DurableClientAttribute attribute
8589

8690
SqlOrchestrationService GetOrchestrationService(SqlDurabilityOptions clientOptions)
8791
{
88-
return new (clientOptions.GetOrchestrationServiceSettings(
92+
return new SqlOrchestrationService(clientOptions.GetOrchestrationServiceSettings(
8993
this.extensionOptions,
90-
this.connectionInfoResolver));
94+
this.connectionInfoResolver,
95+
this.nameResolver));
9196
}
9297

9398
static string GetDurabilityProviderKey(DurableClientAttribute attribute)

0 commit comments

Comments
 (0)