Skip to content

Commit fd5bbd1

Browse files
author
Roberto Paterlini
committed
Changed usage of BrokerNamesProvider
1 parent 3d5623a commit fd5bbd1

File tree

4 files changed

+74
-73
lines changed

4 files changed

+74
-73
lines changed

src/providers/WorkflowCore.QueueProviders.SqlServer/Services/BrokerNamesProvider.cs

Lines changed: 46 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,29 @@
22

33
using System;
44
using System.Linq;
5+
using WorkflowCore.Interface;
56

67
#endregion
78

89
namespace WorkflowCore.QueueProviders.SqlServer.Services
910
{
11+
public class BrokerNames
12+
{
13+
public BrokerNames(string msgType, string initiatorService, string targetService, string contractName, string queueName)
14+
{
15+
MsgType = msgType;
16+
InitiatorService = initiatorService;
17+
TargetService = targetService;
18+
ContractName = contractName;
19+
QueueName = queueName;
20+
}
21+
22+
public string MsgType { get; }
23+
public string InitiatorService { get; }
24+
public string TargetService { get; }
25+
public string ContractName { get; }
26+
public string QueueName { get; }
27+
}
1028
/// <summary>
1129
/// Build names for SSSB objects
1230
/// </summary>
@@ -15,46 +33,46 @@ namespace WorkflowCore.QueueProviders.SqlServer.Services
1533
/// </remarks>
1634
public class BrokerNamesProvider : IBrokerNamesProvider
1735
{
36+
readonly BrokerNames _workFlowNames;
37+
readonly BrokerNames _eventNames;
38+
1839
/// <summary>
1940
/// ctor
2041
/// </summary>
2142
/// <param name="workflowHostName"></param>
2243
public BrokerNamesProvider(string workflowHostName)
2344
{
24-
WorkflowMessageType = "//workflow-core/workflow";
25-
EventMessageType = "//workflow-core/event";
45+
var workflowMessageType = "//workflow-core/workflow";
46+
var eventMessageType = "//workflow-core/event";
2647

27-
EventContractName = "//workflow-core/eventContract";
28-
WorkflowContractName = "//workflow-core/workflowContract";
48+
var eventContractName = "//workflow-core/eventContract";
49+
var workflowContractName = "//workflow-core/workflowContract";
2950

30-
InitiatorEventServiceName = $"//workflow-core/{workflowHostName}/initiatorEventService";
31-
TargetEventServiceName = $"//workflow-core/{workflowHostName}/targetEventService";
51+
var initiatorEventServiceName = $"//workflow-core/{workflowHostName}/initiatorEventService";
52+
var targetEventServiceName = $"//workflow-core/{workflowHostName}/targetEventService";
3253

33-
InitiatorWorkflowServiceName = $"//workflow-core/{workflowHostName}/initiatorWorkflowService";
34-
TargetWorkflowServiceName = $"//workflow-core/{workflowHostName}/targetWorkflowService";
54+
var initiatorWorkflowServiceName = $"//workflow-core/{workflowHostName}/initiatorWorkflowService";
55+
var targetWorkflowServiceName = $"//workflow-core/{workflowHostName}/targetWorkflowService";
3556

36-
EventQueueName = $"//workflow-core/{workflowHostName}/eventQueue";
37-
WorkflowQueueName = $"//workflow-core/{workflowHostName}/workflowQueue";
57+
var eventQueueName = $"//workflow-core/{workflowHostName}/eventQueue";
58+
var workflowQueueName = $"//workflow-core/{workflowHostName}/workflowQueue";
59+
60+
_workFlowNames = new BrokerNames(workflowMessageType, initiatorWorkflowServiceName, targetWorkflowServiceName, workflowContractName, eventQueueName);
61+
_eventNames = new BrokerNames(eventMessageType, initiatorEventServiceName, targetEventServiceName, eventContractName, workflowQueueName);
3862
}
3963

40-
public string WorkflowContractName { get; }
41-
42-
public string TargetEventServiceName { get; }
43-
44-
public string InitiatorEventServiceName { get; }
45-
46-
public string WorkflowQueueName { get; }
47-
48-
public string EventQueueName { get; }
49-
50-
public string TargetWorkflowServiceName { get; }
51-
52-
public string InitiatorWorkflowServiceName { get; }
53-
54-
public string EventContractName { get; }
55-
56-
public string EventMessageType { get; }
64+
public BrokerNames GetByQueue(QueueType queue)
65+
{
66+
switch (queue)
67+
{
68+
case QueueType.Workflow:
69+
return _workFlowNames;
70+
case QueueType.Event:
71+
return _eventNames;
72+
default:
73+
throw new ArgumentOutOfRangeException(nameof(queue), queue, null);
74+
}
5775

58-
public string WorkflowMessageType { get; }
76+
}
5977
}
6078
}

src/providers/WorkflowCore.QueueProviders.SqlServer/Services/IBrokerNamesProvider.cs

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
using System;
44
using System.Linq;
5+
using WorkflowCore.Interface;
56

67
#endregion
78

@@ -12,15 +13,6 @@ namespace WorkflowCore.QueueProviders.SqlServer.Services
1213
/// </summary>
1314
public interface IBrokerNamesProvider
1415
{
15-
string WorkflowContractName { get; }
16-
string TargetEventServiceName { get; }
17-
string InitiatorEventServiceName { get; }
18-
string WorkflowQueueName { get; }
19-
string EventQueueName { get; }
20-
string TargetWorkflowServiceName { get; }
21-
string InitiatorWorkflowServiceName { get; }
22-
string EventContractName { get; }
23-
string EventMessageType { get; }
24-
string WorkflowMessageType { get; }
16+
BrokerNames GetByQueue(QueueType queue);
2517
}
2618
}

src/providers/WorkflowCore.QueueProviders.SqlServer/Services/SqlServerQueueProvider.cs

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -96,29 +96,16 @@ public async Task QueueWork(string id, QueueType queue)
9696
SqlConnection cn = null;
9797
try
9898
{
99-
string msgType, initiatorService, targetService, contractName;
100-
if (queue == QueueType.Workflow)
101-
{
102-
msgType = _names.WorkflowMessageType;
103-
initiatorService = _names.InitiatorWorkflowServiceName;
104-
targetService = _names.TargetWorkflowServiceName;
105-
contractName = _names.WorkflowContractName;
106-
} else
107-
{
108-
msgType = _names.EventMessageType;
109-
initiatorService = _names.InitiatorEventServiceName;
110-
targetService = _names.TargetEventServiceName;
111-
contractName = _names.EventContractName;
112-
}
113-
99+
var par = _names.GetByQueue(queue);
100+
114101
cn = new SqlConnection(_connectionString);
115102
cn.Open();
116103
using (var cmd = _sqlCommandExecutor.CreateCommand(cn, null, _queueWork))
117104
{
118-
cmd.Parameters.AddWithValue("@initiatorService", initiatorService);
119-
cmd.Parameters.AddWithValue("@targetService", targetService);
120-
cmd.Parameters.AddWithValue("@contractName", contractName);
121-
cmd.Parameters.AddWithValue("@msgType", msgType);
105+
cmd.Parameters.AddWithValue("@initiatorService", par.InitiatorService);
106+
cmd.Parameters.AddWithValue("@targetService", par.TargetService);
107+
cmd.Parameters.AddWithValue("@contractName", par.ContractName);
108+
cmd.Parameters.AddWithValue("@msgType", par.MsgType);
122109
cmd.Parameters.AddWithValue("@RequestMessage", id);
123110
await cmd.ExecuteNonQueryAsync();
124111
}
@@ -140,9 +127,9 @@ public async Task<string> DequeueWork(QueueType queue, CancellationToken cancell
140127
SqlConnection cn = null;
141128
try
142129
{
143-
var queueName = queue == QueueType.Workflow ? _names.WorkflowQueueName : _names.EventQueueName;
144-
145-
var sql = _dequeueWork.Replace("{queueName}", queueName);
130+
var par = _names.GetByQueue(queue);
131+
132+
var sql = _dequeueWork.Replace("{queueName}", par.QueueName);
146133

147134
cn = new SqlConnection(_connectionString);
148135
cn.Open();

src/providers/WorkflowCore.QueueProviders.SqlServer/Services/SqlServerQueueProviderMigrator.cs

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System.Data.SqlClient;
55
using System.Linq;
66
using System.Text.RegularExpressions;
7+
using WorkflowCore.Interface;
78

89
#endregion
910

@@ -17,9 +18,9 @@ public interface ISqlServerQueueProviderMigrator
1718

1819
public class SqlServerQueueProviderMigrator : ISqlServerQueueProviderMigrator
1920
{
20-
readonly string _connectionString;
21+
private readonly string _connectionString;
2122

22-
readonly IBrokerNamesProvider _names;
23+
private readonly IBrokerNamesProvider _names;
2324
private readonly ISqlCommandExecutor _sqlCommandExecutor;
2425

2526
public SqlServerQueueProviderMigrator(string connectionString, IBrokerNamesProvider names, ISqlCommandExecutor sqlCommandExecutor)
@@ -41,21 +42,24 @@ public void MigrateDb()
4142
cn.Open();
4243
var tx = cn.BeginTransaction();
4344

44-
CreateMessageType(cn, tx, _names.WorkflowMessageType);
45-
CreateMessageType(cn, tx, _names.EventMessageType);
46-
47-
CreateContract(cn, tx, _names.EventContractName, _names.EventMessageType);
48-
CreateContract(cn, tx, _names.WorkflowContractName, _names.WorkflowMessageType);
45+
var n = new[]
46+
{
47+
_names.GetByQueue(QueueType.Workflow),
48+
_names.GetByQueue(QueueType.Event)
49+
};
4950

50-
CreateQueue(cn, tx, _names.EventQueueName);
51-
CreateQueue(cn, tx, _names.WorkflowQueueName);
51+
foreach (var item in n)
52+
{
53+
CreateMessageType(cn, tx, item.MsgType);
5254

53-
CreateService(cn, tx, _names.InitiatorEventServiceName, _names.EventQueueName, _names.EventContractName);
54-
CreateService(cn, tx, _names.TargetEventServiceName, _names.EventQueueName, _names.EventContractName);
55+
CreateContract(cn, tx, item.ContractName, item.MsgType);
5556

56-
CreateService(cn, tx, _names.InitiatorWorkflowServiceName, _names.WorkflowQueueName, _names.WorkflowContractName);
57-
CreateService(cn, tx, _names.TargetWorkflowServiceName, _names.WorkflowQueueName, _names.WorkflowContractName);
57+
CreateQueue(cn, tx, item.QueueName);
5858

59+
CreateService(cn, tx, item.InitiatorService, item.QueueName, item.ContractName);
60+
CreateService(cn, tx, item.TargetService, item.QueueName, item.ContractName);
61+
}
62+
5963
tx.Commit();
6064
} finally
6165
{

0 commit comments

Comments
 (0)