public async Task <bool> SubscribeAsync(Type eventType, Type eventHandlerType)
        {
            var channelName = GetChannelName(eventType, eventHandlerType);
            await Task.WhenAll(
                _subscriptionManager.SubscribeAsync(eventType, eventHandlerType),
                _subscriber.SubscribeAsync(channelName, async(channel, eventMessage) =>
            {
                var eventData = eventMessage.ToString().ToEvent();
                var handler   = (IEventHandler)_serviceProvider.GetServiceOrCreateInstance(eventHandlerType);
                if (null != handler)
                {
                    await handler.Handle(eventData).ConfigureAwait(false);
                }
            })
                );

            return(true);
        }
 public Task <bool> SubscribeAsync(Type eventType, Type eventHandlerType) => _subscriptionManager.SubscribeAsync(eventType, eventHandlerType);