Skip to content

Commit f3c28db

Browse files
committed
Load mail config from EngineConfiguration
1 parent fa558e7 commit f3c28db

File tree

5 files changed

+29
-18
lines changed

5 files changed

+29
-18
lines changed

IntegrationEngine.ConsoleHost/IntegrationEngine.ConsoleHost.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@
9696
<Compile Include="IntegrationJobs\SampleSqlReport\SampleSqlReportJobWithIntegrationPoints.cs" />
9797
<Compile Include="IntegrationPoints\FooMailClient.cs" />
9898
<Compile Include="IntegrationPoints\BarSqlServer.cs" />
99+
<Compile Include="IntegrationPoints\IFooMailClient.cs" />
99100
</ItemGroup>
100101
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
101102
<ItemGroup>

IntegrationEngine.ConsoleHost/IntegrationJobs/CarReport/CarMailMessageJob.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public CarMailMessageJob()
1616
{
1717
}
1818

19-
public CarMailMessageJob(IFooMailClient mailClient)
19+
public CarMailMessageJob(FooMailClient mailClient)
2020
: this()
2121
{
2222
MailClient = mailClient;
Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,18 @@
1-
namespace IntegrationEngine.Core.Configuration
1+
using System.Linq;
2+
3+
namespace IntegrationEngine.Core.Configuration
24
{
35
public class MailConfiguration : IMailConfiguration
46
{
57
public string IntegrationPointName { get; set; }
68
public string HostName { get; set; }
79
public int Port { get; set; }
10+
11+
public MailConfiguration(IEngineConfiguration engineConfiguration, string integrationPointName)
12+
{
13+
var config = engineConfiguration.IntegrationPoints.Mail.Single(x => x.IntegrationPointName == integrationPointName);
14+
HostName = config.HostName;
15+
Port = config.Port;
16+
}
817
}
918
}

IntegrationEngine.userprefs

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,11 @@
22
<MonoDevelop.Ide.Workspace ActiveConfiguration="Debug" />
33
<MonoDevelop.Ide.Workbench ActiveDocument="IntegrationEngine/EngineHostCompositionRoot.cs">
44
<Files>
5-
<File FileName="IntegrationEngine.ConsoleHost/Program.cs" Line="10" Column="10" />
6-
<File FileName="IntegrationEngine/EngineHostCompositionRoot.cs" Line="15" Column="15" />
7-
<File FileName="../../../../Library/Frameworks/Mono.framework/Versions/3.12.0/lib/mono/4.5/Microsoft.Common.targets" Line="1" Column="1" />
5+
<File FileName="IntegrationEngine/EngineHostCompositionRoot.cs" Line="21" Column="21" />
86
</Files>
97
<Pads>
108
<Pad Id="MonoDevelop.NUnit.TestPad">
11-
<State expanded="True">
12-
<Node name="IntegrationEngine.Tests" expanded="True">
13-
<Node name="IntegrationEngine" expanded="True">
14-
<Node name="Tests" expanded="True">
15-
<Node name="EngineHostCompositionRootTest" expanded="True">
16-
<Node name="ShouldSetupMessageQueueListener" selected="True" />
17-
</Node>
18-
</Node>
19-
</Node>
20-
</Node>
21-
</State>
9+
<State expanded="True" selected="True" />
2210
</Pad>
2311
</Pads>
2412
</MonoDevelop.Ide.Workbench>

IntegrationEngine/EngineHostCompositionRoot.cs

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,14 @@ public void Configure(IList<Assembly> assembliesWithJobs)
5252

5353
public void LoadConfiguration()
5454
{
55+
try
56+
{
57+
new EngineConfiguration();
58+
}
59+
catch (Exception exception)
60+
{
61+
throw new Exception("Could not read configuration.", exception);
62+
}
5563
Container.RegisterType<IEngineConfiguration, EngineConfiguration>();
5664
EngineConfiguration = Container.Resolve<IEngineConfiguration>();
5765
}
@@ -79,10 +87,15 @@ public void RegisterIntegrationPoints()
7987
Container.RegisterType<IConnectionSettingsValues, ConnectionSettings>();
8088
//Container.RegisterType<IMailConfiguration, MailConfiguration>();
8189
foreach (var config in EngineConfiguration.IntegrationPoints.Mail) {
82-
Container.RegisterInstance<IMailConfiguration>(config.IntegrationPointName, config);
90+
// Container.RegisterInstance<IMailConfiguration>(config.IntegrationPointName, config);
91+
Container.RegisterType<IMailConfiguration, MailConfiguration>(config.IntegrationPointName,
92+
new InjectionConstructor(
93+
new ResolvedParameter<IEngineConfiguration>(),
94+
new ResolvedParameter<string>(config.IntegrationPointName)
95+
)
96+
);
8397
Container.RegisterType<IMailClient, MailClient>(config.IntegrationPointName, new InjectionConstructor(config));
8498
}
85-
var mailClientConfig = Container.Resolve<IMailConfiguration>("FooMailClient");
8699

87100
foreach (var config in EngineConfiguration.IntegrationPoints.Elasticsearch) {
88101
Container.RegisterInstance<IElasticsearchConfiguration>(config.IntegrationPointName, config);

0 commit comments

Comments
 (0)