public IListener StartListening <TEvent, THandler>(EventConfiguration configuration = null) where TEvent : Event where THandler : IHandler <TEvent> { if (_eventBusInitializer.IsSuccessfullyInitialized <TEvent>()) { ListenToInternal <TEvent, THandler>(); } if (configuration == null) { configuration = new DefaultEventConfiguration(); } var setupTask = _eventBusInitializer.SetupMessageBusWithSnsAndSqs <TEvent>(configuration); setupTask.Wait(); if (setupTask.Result) { ListenToInternal <TEvent, THandler>(); } return(this); }
public async Task <bool> PublishAsync <TEvent>(TEvent content, EventConfiguration configuration = null) where TEvent : Event { if (_eventBusInitializer.IsSuccessfullyInitialized <TEvent>()) { return(await PublishInternalAsync(content)); } if (configuration == null) { configuration = new DefaultEventConfiguration(); } if (await _eventBusInitializer.SetupMessageBusWithSnsAndSqs <TEvent>(configuration)) { return(await PublishInternalAsync(content)); } return(false); }