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);