private async Task ProcessEvent(string eventName, string message)
 {
     _logger.LogTrace("Processing RabbitMq event:{EventName}", eventName);
     if (_subsManager.HasSubscriptionsForEvent(eventName))
     {
         using var scope = _scope.BeginLifetimeScope(AUTOFAC_SCOPE_NAME);
         var subscriptions = _subsManager.GetHandlersForEvent(eventName);
         foreach (var subscription in subscriptions)
         {
             if (subscription.IsDynamic)
             {
                 var handler = scope.ResolveOptional(subscription.HandlerType) as IDynamicIntegrationEventHandler;
                 if (handler == null)
                 {
                     continue;
                 }
                 dynamic obj = JObject.Parse(message);
                 await handler.Handle(obj);
             }
             else
             {
                 var handler = scope.ResolveOptional(subscription.HandlerType);
                 if (handler == null)
                 {
                     continue;
                 }
                 var eventType        = _subsManager.GetEventTypeName(eventName);
                 var integrationEvent = JsonConvert.DeserializeObject(message, eventType);
                 var concreteType     = typeof(IIntegrationEventHandler <>).MakeGenericType(eventType);
                 await(Task) concreteType.GetMethod("Handle").Invoke(handler, new object[] { integrationEvent });
             }
         }
     }
     else
     {
         _logger.LogWarning("No Subscription for RabbitMQ event:", eventName);
     }
 }