Skip to content

Commit 29f98cd

Browse files
committed
Refactor in preparation for utilizing integration points
1 parent c7c77fb commit 29f98cd

31 files changed

+335
-213
lines changed

IntegrationEngine/Configuration/ElasticsearchConfiguration.cs renamed to IntegrationEngine.Core/Configuration/ElasticsearchConfiguration.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using IntegrationEngine.Core.Points;
22

3-
namespace IntegrationEngine.Configuration
3+
namespace IntegrationEngine.Core.Configuration
44
{
55
public class ElasticsearchConfiguration : IElasticsearchPoint
66
{

IntegrationEngine/Configuration/RabbitMQConfiguration.cs renamed to IntegrationEngine.Core/Configuration/RabbitMQConfiguration.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
using System.Threading.Tasks;
66
using IntegrationEngine.Core.Points;
77

8-
namespace IntegrationEngine.Configuration
8+
namespace IntegrationEngine.Core.Configuration
99
{
1010
public class RabbitMQConfiguration : IRabbitMQPoint
1111
{

IntegrationEngine.Core/IntegrationEngine.Core.csproj

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
<Reference Include="System" />
4848
<Reference Include="System.ComponentModel.DataAnnotations" />
4949
<Reference Include="System.Core" />
50+
<Reference Include="System.Messaging" />
5051
<Reference Include="System.Xml.Linq" />
5152
<Reference Include="System.Data.DataSetExtensions" />
5253
<Reference Include="Microsoft.CSharp" />
@@ -81,7 +82,9 @@
8182
<Compile Include="..\configuration\SharedAssemblyInfo.cs">
8283
<Link>Properties\SharedAssemblyInfo.cs</Link>
8384
</Compile>
85+
<Compile Include="Configuration\ElasticsearchConfiguration.cs" />
8486
<Compile Include="Configuration\MailConfiguration.cs" />
87+
<Compile Include="Configuration\RabbitMQConfiguration.cs" />
8588
<Compile Include="Jobs\IIntegrationJob.cs" />
8689
<Compile Include="Jobs\ILogJob.cs" />
8790
<Compile Include="Jobs\IMailJob.cs" />
@@ -91,6 +94,10 @@
9194
<Compile Include="Jobs\SqlJob.cs" />
9295
<Compile Include="Mail\IMailClient.cs" />
9396
<Compile Include="Mail\MailClient.cs" />
97+
<Compile Include="MessageQueue\IMessageQueueClient.cs" />
98+
<Compile Include="MessageQueue\IMessageQueueConnection.cs" />
99+
<Compile Include="MessageQueue\MsmqClient.cs" />
100+
<Compile Include="MessageQueue\RabbitMQClient.cs" />
94101
<Compile Include="Properties\AssemblyInfo.cs" />
95102
<Compile Include="Reports\IDatum.cs" />
96103
<Compile Include="Reports\IReport.cs" />
@@ -142,7 +149,5 @@
142149
<Target Name="AfterBuild">
143150
</Target>
144151
-->
145-
<ItemGroup>
146-
<Folder Include="Points\" />
147-
</ItemGroup>
152+
<ItemGroup />
148153
</Project>

IntegrationEngine/MessageQueue/IMessageQueueClient.cs renamed to IntegrationEngine.Core/MessageQueue/IMessageQueueClient.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
using System;
22
using System.Collections.Generic;
33

4-
namespace IntegrationEngine.MessageQueue
4+
namespace IntegrationEngine.Core.MessageQueue
55
{
66
public interface IMessageQueueClient
77
{
8-
void Publish<T>(T value, IDictionary<string, string> parameters);
8+
void Publish(byte[] message);
99
bool IsServerAvailable();
1010
}
1111
}

IntegrationEngine/MessageQueue/IMessageQueueConnection.cs renamed to IntegrationEngine.Core/MessageQueue/IMessageQueueConnection.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
using IntegrationEngine.Configuration;
1+
using IntegrationEngine.Core.Configuration;
22
using RabbitMQ.Client;
33

4-
namespace IntegrationEngine.MessageQueue
4+
namespace IntegrationEngine.Core.MessageQueue
55
{
66
public interface IMessageQueueConnection
77
{

IntegrationEngine/MessageQueue/MsmqClient.cs renamed to IntegrationEngine.Core/MessageQueue/MsmqClient.cs

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
using System.Text;
55
using MSMessageQueue = System.Messaging.MessageQueue;
66

7-
namespace IntegrationEngine.MessageQueue
7+
namespace IntegrationEngine.Core.MessageQueue
88
{
99
public class MsmqClient : IMessageQueueClient
1010
{
@@ -20,19 +20,9 @@ public string QueueName {
2020
}
2121
public ILog Log { get; set; }
2222

23-
public void Publish<T>(T value, IDictionary<string, string> parameters)
23+
public void Publish(byte[] message)
2424
{
25-
try
26-
{
27-
var message = value.GetType().FullName;
28-
var body = Encoding.UTF8.GetBytes(message);
29-
MSMessageQueue.Send(body);
30-
Log.Debug(x => x("Sent message: {0}", message));
31-
}
32-
catch (Exception exception)
33-
{
34-
Log.Error(exception);
35-
}
25+
MSMessageQueue.Send(message);
3626
}
3727

3828
public bool IsServerAvailable()
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
using Common.Logging;
2+
using IntegrationEngine.Core.Configuration;
3+
using IntegrationEngine.Core.Jobs;
4+
using Newtonsoft.Json;
5+
using RabbitMQ.Client.Exceptions;
6+
using System;
7+
using System.Collections.Generic;
8+
using System.Reflection;
9+
using System.Text;
10+
11+
namespace IntegrationEngine.Core.MessageQueue
12+
{
13+
public class RabbitMQClient : IMessageQueueClient
14+
{
15+
public RabbitMQConfiguration MessageQueueConfiguration { get; set; }
16+
public IMessageQueueConnection MessageQueueConnection { get; set; }
17+
public ILog Log { get; set; }
18+
19+
public RabbitMQClient()
20+
{
21+
Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
22+
}
23+
24+
public void Publish(byte[] message)
25+
{
26+
using (var connection = MessageQueueConnection.GetConnection())
27+
using (var channel = connection.CreateModel())
28+
{
29+
channel.QueueBind(MessageQueueConfiguration.QueueName, MessageQueueConfiguration.ExchangeName, "");
30+
channel.BasicPublish(MessageQueueConfiguration.ExchangeName, "", null, message);
31+
}
32+
}
33+
34+
public bool IsServerAvailable()
35+
{
36+
try
37+
{
38+
return MessageQueueConnection.GetConnection().IsOpen;
39+
}
40+
catch(BrokerUnreachableException exception)
41+
{
42+
Log.Error(exception);
43+
return false;
44+
}
45+
}
46+
}
47+
}

IntegrationEngine.Model.net40/IntegrationEngine.Model.net40.csproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,15 @@
5757
<Compile Include="..\configuration\SharedAssemblyInfo.cs">
5858
<Link>Properties\SharedAssemblyInfo.cs</Link>
5959
</Compile>
60+
<Compile Include="..\IntegrationEngine.Model\DispatchTrigger.cs">
61+
<Link>DispatchTrigger.cs</Link>
62+
</Compile>
6063
<Compile Include="..\IntegrationEngine.Model\ICronTrigger.cs">
6164
<Link>ICronTrigger.cs</Link>
6265
</Compile>
66+
<Compile Include="..\IntegrationEngine.Model\IDispatchable.cs">
67+
<Link>IDispatchable.cs</Link>
68+
</Compile>
6369
<Compile Include="..\IntegrationEngine.Model\IHasParameters.cs">
6470
<Link>IHasParameters.cs</Link>
6571
</Compile>
Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
1-
using IntegrationEngine.Model;
2-
using System;
1+
using System;
32
using System.Collections.Generic;
43
using System.Linq;
54
using System.Text;
65
using System.Threading.Tasks;
76

8-
namespace IntegrationEngine.MessageQueue
7+
namespace IntegrationEngine.Model
98
{
10-
public class DispatchMessage : IHasParameters
9+
public class DispatchTrigger : IDispatchable
1110
{
12-
public string JobTypeName { get; set; }
11+
public string JobType { get; set; }
1312
public IDictionary<string, string> Parameters { get; set; }
1413
}
1514
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
using System.Threading.Tasks;
6+
7+
namespace IntegrationEngine.Model
8+
{
9+
public interface IDispatchable : IHasParameters
10+
{
11+
string JobType { get; set; }
12+
}
13+
}

0 commit comments

Comments
 (0)