From dbc9a9900df4bb87b423235999ff1d52e5ba7ea3 Mon Sep 17 00:00:00 2001 From: Stuart Ferguson Date: Wed, 17 Mar 2021 08:22:06 +0000 Subject: [PATCH] Updates to useage of worker service --- .../MessagingService.Client.csproj | 2 +- ...ssagingService.EmailAggregate.Tests.csproj | 2 +- ...ngService.EmailMessage.DomainEvents.csproj | 4 +- ...sagingService.EmailMessageAggregate.csproj | 4 +- .../MessagingService.IntegrationTests.csproj | 4 +- ...gingService.SMSMessage.DomainEvents.csproj | 2 +- ...essagingService.SMSMessageAggregate.csproj | 2 +- MessagingService/MessagingService.csproj | 2 +- MessagingService/Program.cs | 43 ++++++++++++++++++- 9 files changed, 53 insertions(+), 12 deletions(-) diff --git a/MessagingService.Client/MessagingService.Client.csproj b/MessagingService.Client/MessagingService.Client.csproj index 406af8c..588e418 100644 --- a/MessagingService.Client/MessagingService.Client.csproj +++ b/MessagingService.Client/MessagingService.Client.csproj @@ -6,7 +6,7 @@ - + diff --git a/MessagingService.EmailAggregate.Tests/MessagingService.EmailAggregate.Tests.csproj b/MessagingService.EmailAggregate.Tests/MessagingService.EmailAggregate.Tests.csproj index 735fcd9..743f98a 100644 --- a/MessagingService.EmailAggregate.Tests/MessagingService.EmailAggregate.Tests.csproj +++ b/MessagingService.EmailAggregate.Tests/MessagingService.EmailAggregate.Tests.csproj @@ -8,7 +8,7 @@ - + diff --git a/MessagingService.EmailMessage.DomainEvents/MessagingService.EmailMessage.DomainEvents.csproj b/MessagingService.EmailMessage.DomainEvents/MessagingService.EmailMessage.DomainEvents.csproj index a7739c1..e3cc9ee 100644 --- a/MessagingService.EmailMessage.DomainEvents/MessagingService.EmailMessage.DomainEvents.csproj +++ b/MessagingService.EmailMessage.DomainEvents/MessagingService.EmailMessage.DomainEvents.csproj @@ -5,8 +5,8 @@ - - + + diff --git a/MessagingService.EmailMessageAggregate/MessagingService.EmailMessageAggregate.csproj b/MessagingService.EmailMessageAggregate/MessagingService.EmailMessageAggregate.csproj index 42a92ed..31cf1b2 100644 --- a/MessagingService.EmailMessageAggregate/MessagingService.EmailMessageAggregate.csproj +++ b/MessagingService.EmailMessageAggregate/MessagingService.EmailMessageAggregate.csproj @@ -5,8 +5,8 @@ - - + + diff --git a/MessagingService.IntegrationTests/MessagingService.IntegrationTests.csproj b/MessagingService.IntegrationTests/MessagingService.IntegrationTests.csproj index e189cbc..bac392a 100644 --- a/MessagingService.IntegrationTests/MessagingService.IntegrationTests.csproj +++ b/MessagingService.IntegrationTests/MessagingService.IntegrationTests.csproj @@ -7,11 +7,11 @@ - + - + diff --git a/MessagingService.SMSMessage.DomainEvents/MessagingService.SMSMessage.DomainEvents.csproj b/MessagingService.SMSMessage.DomainEvents/MessagingService.SMSMessage.DomainEvents.csproj index d7a3990..9f5586f 100644 --- a/MessagingService.SMSMessage.DomainEvents/MessagingService.SMSMessage.DomainEvents.csproj +++ b/MessagingService.SMSMessage.DomainEvents/MessagingService.SMSMessage.DomainEvents.csproj @@ -5,7 +5,7 @@ - + diff --git a/MessagingService.SMSMessageAggregate/MessagingService.SMSMessageAggregate.csproj b/MessagingService.SMSMessageAggregate/MessagingService.SMSMessageAggregate.csproj index 176dd32..47e4941 100644 --- a/MessagingService.SMSMessageAggregate/MessagingService.SMSMessageAggregate.csproj +++ b/MessagingService.SMSMessageAggregate/MessagingService.SMSMessageAggregate.csproj @@ -5,7 +5,7 @@ - + diff --git a/MessagingService/MessagingService.csproj b/MessagingService/MessagingService.csproj index 47a8de1..404bb78 100644 --- a/MessagingService/MessagingService.csproj +++ b/MessagingService/MessagingService.csproj @@ -11,7 +11,7 @@ - + diff --git a/MessagingService/Program.cs b/MessagingService/Program.cs index a71cb85..fa76b31 100644 --- a/MessagingService/Program.cs +++ b/MessagingService/Program.cs @@ -11,11 +11,14 @@ namespace MessagingService { using System.Diagnostics.CodeAnalysis; + using System.Net.Http; using EmailMessage.DomainEvents; using EventStore.Client; using Microsoft.Extensions.DependencyInjection; using Shared.EventStore.Aggregate; + using Shared.EventStore.EventHandling; using Shared.EventStore.Subscriptions; + using Shared.Logger; using SMSMessage.DomainEvents; [ExcludeFromCodeCoverage] @@ -56,10 +59,48 @@ public static IHostBuilder CreateHostBuilder(string[] args) TypeProvider.LoadDomainEventsTypeDynamically(); - services.AddHostedService(); + services.AddHostedService(provider => + { + IDomainEventHandlerResolver r = + provider.GetRequiredService(); + EventStorePersistentSubscriptionsClient p = provider.GetRequiredService(); + HttpClient h = provider.GetRequiredService(); + SubscriptionWorker worker = new SubscriptionWorker(r, p, h); + worker.TraceGenerated += Worker_TraceGenerated; + return worker; + }); }); return hostBuilder; } + /// + /// Workers the trace generated. + /// + /// The trace. + /// The log level. + private static void Worker_TraceGenerated(string trace, LogLevel logLevel) + { + switch (logLevel) + { + case LogLevel.Trace: + Logger.LogTrace(trace); + break; + case LogLevel.Debug: + Logger.LogDebug(trace); + break; + case LogLevel.Information: + Logger.LogInformation(trace); + break; + case LogLevel.Warning: + Logger.LogWarning(trace); + break; + case LogLevel.Error: + Logger.LogError(new Exception(trace)); + break; + case LogLevel.Critical: + Logger.LogCritical(new Exception(trace)); + break; + } + } } }