diff --git a/Shared.EventStore/EventStore/EventStoreContextManager.cs b/Shared.EventStore/EventStore/EventStoreContextManager.cs index 068c61a2..31be9205 100644 --- a/Shared.EventStore/EventStore/EventStoreContextManager.cs +++ b/Shared.EventStore/EventStore/EventStoreContextManager.cs @@ -23,24 +23,11 @@ public EventStoreContextManager(Func eventStoreConte this.EventStoreContexts = new(); this.EventStoreContextFunc = eventStoreContextFunc; } - - //public EventStoreContextManager(IEventStoreContext eventStoreContext) - //{ - //this.Context = eventStoreContext; - //} public event TraceHandler TraceGenerated; - - //public IEventStoreContext GetEventStoreContext(String connectionIdentifier) => this.GetEventStoreContext(connectionIdentifier, "EventStoreConnectionString"); - public IEventStoreContext GetEventStoreContext(String connectionStringIdentifier) { - //if (this.Context != null) - //{ - // return this.Context; - //} - this.WriteTrace($"No resolved context found, about to resolve one using connectionIdentifier {connectionStringIdentifier}"); if (this.EventStoreContexts.TryGetValue(connectionStringIdentifier, out IEventStoreContext context)) diff --git a/Shared.EventStore/Extensions/IApplicationBuilderExtenstions.cs b/Shared.EventStore/Extensions/IApplicationBuilderExtenstions.cs index da786576..5eaea4ba 100644 --- a/Shared.EventStore/Extensions/IApplicationBuilderExtenstions.cs +++ b/Shared.EventStore/Extensions/IApplicationBuilderExtenstions.cs @@ -66,20 +66,8 @@ internal static List ConfigureSubscriptions(ISubscriptionRep KeyValuePair ehr = eventHandlerResolvers.SingleOrDefault(e => e.Key == "Ordered"); if (ehr.Value != null) { - SubscriptionWorker worker = SubscriptionWorker.CreateOrderedSubscriptionWorker(eventStoreConnectionString, - ehr.Value, - subscriptionRepository, - configuration.PersistentSubscriptionPollingInSeconds); - worker.Trace += (_, - args) => traceHandler(TraceEventType.Information, "ORDERED", args.Message); - worker.Warning += (_, - args) => traceHandler(TraceEventType.Warning, "ORDERED", args.Message); - worker.Error += (_, - args) => traceHandler(TraceEventType.Error, "ORDERED", args.Message); - worker.SetIgnoreGroups(configurationSubscriptionWorker.IgnoreGroups); - worker.SetIgnoreStreams(configurationSubscriptionWorker.IgnoreStreams); - worker.SetIncludeGroups(configurationSubscriptionWorker.IncludeGroups); - worker.SetIncludeStreams(configurationSubscriptionWorker.IncludeStreams); + SubscriptionWorker worker = ConfigureSubscriptionWorker(subscriptionRepository, configuration, + eventStoreConnectionString, traceHandler, ehr, configurationSubscriptionWorker, "ORDERED"); workers.Add(worker); } } @@ -88,20 +76,9 @@ internal static List ConfigureSubscriptions(ISubscriptionRep if (ehr.Value != null) { - for (Int32 i = 0; i < configurationSubscriptionWorker.InstanceCount; i++) - { - SubscriptionWorker worker = SubscriptionWorker.CreateSubscriptionWorker(eventStoreConnectionString, ehr.Value, subscriptionRepository, configurationSubscriptionWorker.InflightMessages, configuration.PersistentSubscriptionPollingInSeconds); - - worker.Trace += (_, - args) => traceHandler(TraceEventType.Information, "DOMAIN", args.Message); - worker.Warning += (_, - args) => traceHandler(TraceEventType.Warning, "DOMAIN", args.Message); - worker.Error += (_, - args) => traceHandler(TraceEventType.Error, "DOMAIN", args.Message); - worker.SetIgnoreGroups(configurationSubscriptionWorker.IgnoreGroups); - worker.SetIgnoreStreams(configurationSubscriptionWorker.IgnoreStreams); - worker.SetIncludeGroups(configurationSubscriptionWorker.IncludeGroups); - worker.SetIncludeStreams(configurationSubscriptionWorker.IncludeStreams); + for (Int32 i = 0; i < configurationSubscriptionWorker.InstanceCount; i++) { + SubscriptionWorker worker = ConfigureSubscriptionWorker(subscriptionRepository, configuration, + eventStoreConnectionString, traceHandler, ehr, configurationSubscriptionWorker, "DOMAIN"); workers.Add(worker); } @@ -113,22 +90,8 @@ internal static List ConfigureSubscriptions(ISubscriptionRep { for (Int32 i = 0; i < configurationSubscriptionWorker.InstanceCount; i++) { - SubscriptionWorker worker = SubscriptionWorker.CreateSubscriptionWorker(eventStoreConnectionString, - ehr.Value, - subscriptionRepository, - configurationSubscriptionWorker.InflightMessages, - configuration.PersistentSubscriptionPollingInSeconds); - - worker.Trace += (_, - args) => traceHandler(TraceEventType.Information, "MAIN", args.Message); - worker.Warning += (_, - args) => traceHandler(TraceEventType.Warning, "MAIN", args.Message); - worker.Error += (_, - args) => traceHandler(TraceEventType.Error, "MAIN", args.Message); - worker.SetIgnoreGroups(configurationSubscriptionWorker.IgnoreGroups); - worker.SetIgnoreStreams(configurationSubscriptionWorker.IgnoreStreams); - worker.SetIncludeGroups(configurationSubscriptionWorker.IncludeGroups); - worker.SetIncludeStreams(configurationSubscriptionWorker.IncludeStreams); + SubscriptionWorker worker = ConfigureSubscriptionWorker(subscriptionRepository, configuration, + eventStoreConnectionString, traceHandler, ehr, configurationSubscriptionWorker, "MAIN"); workers.Add(worker); } @@ -138,5 +101,32 @@ internal static List ConfigureSubscriptions(ISubscriptionRep return workers; } + + private static SubscriptionWorker ConfigureSubscriptionWorker(ISubscriptionRepository subscriptionRepository, + SubscriptionWorkersRoot configuration, + String eventStoreConnectionString, + Action traceHandler, + KeyValuePair ehr, + SubscriptionWorkerConfig configurationSubscriptionWorker, + String type) { + + SubscriptionWorker worker = type switch { + "ORDERED" => SubscriptionWorker.CreateOrderedSubscriptionWorker(eventStoreConnectionString, ehr.Value, subscriptionRepository, configuration.PersistentSubscriptionPollingInSeconds), + _ => SubscriptionWorker.CreateSubscriptionWorker(eventStoreConnectionString, ehr.Value, subscriptionRepository, configurationSubscriptionWorker.InflightMessages, configuration.PersistentSubscriptionPollingInSeconds), + }; + + worker.Trace += (_, + args) => traceHandler(TraceEventType.Information, type, args.Message); + worker.Warning += (_, + args) => traceHandler(TraceEventType.Warning, type, args.Message); + worker.Error += (_, + args) => traceHandler(TraceEventType.Error, type, args.Message); + worker.SetIgnoreGroups(configurationSubscriptionWorker.IgnoreGroups); + worker.SetIgnoreStreams(configurationSubscriptionWorker.IgnoreStreams); + worker.SetIncludeGroups(configurationSubscriptionWorker.IncludeGroups); + worker.SetIncludeStreams(configurationSubscriptionWorker.IncludeStreams); + return worker; + } + #endregion } \ No newline at end of file diff --git a/Shared/Middleware/CorrelationIdMiddleware.cs b/Shared/Middleware/CorrelationIdMiddleware.cs index 482c6d80..356b2ac1 100644 --- a/Shared/Middleware/CorrelationIdMiddleware.cs +++ b/Shared/Middleware/CorrelationIdMiddleware.cs @@ -139,38 +139,4 @@ public static TenantIdentifiers GetIdentifiersFromRoute(this HttpContext context return estateId == Guid.Empty ? TenantIdentifiers.Default() : new TenantIdentifiers(estateId, merchantId); } - - /*public static async Task GetIdentifiersFromPayload(this HttpContext context) - { - HttpRequest request = context.Request; - String bodyAsText = null; - - try - { - request.EnableBuffering(); - bodyAsText = await new StreamReader(request.Body).ReadToEndAsync(); - request.Body.Position = 0; - - if (String.IsNullOrWhiteSpace(bodyAsText)) - { - return TenantIdentifiers.Default(); - } - - JToken rootToken = JToken.Parse(bodyAsText); - - JToken organisationIdToken = rootToken.SelectTokens("..organisationId").FirstOrDefault(); - JToken storeIdToken = rootToken.SelectTokens("..storeId").FirstOrDefault(); - - Guid.TryParse(organisationIdToken?.Value(), out Guid organisationId); - Guid.TryParse(storeIdToken?.Value(), out Guid storeId); - - return organisationId == Guid.Empty ? TenantIdentifiers.Default() : new TenantIdentifiers(organisationId, storeId); - } - catch (Exception e) - { - EposityLogger.WriteWarning($"Unable to get organisationId from request body [{bodyAsText}]"); - EposityLogger.WriteException(e); - return TenantIdentifiers.Default(); - } - }*/ } diff --git a/Shared/Middleware/ResponseLoggingMiddleware.cs b/Shared/Middleware/ResponseLoggingMiddleware.cs index e15efcb9..f41216aa 100644 --- a/Shared/Middleware/ResponseLoggingMiddleware.cs +++ b/Shared/Middleware/ResponseLoggingMiddleware.cs @@ -76,7 +76,6 @@ public class ResponseLoggingMemoryStream : MemoryStream public override void Close() { // Dont close by default - // base.Close(); } public void ForceClose()