public Module(Configurations configurations, EventsToSubscribe eventsToSubscribe, IEventBus eventBus) { this._configurations = configurations ?? throw new ArgumentNullException(nameof(configurations)); this._eventBus = eventBus ?? throw new ArgumentNullException(nameof(eventBus)); this.SubscribeEvents(eventsToSubscribe); }
protected override async Task SubscribeEvents(EventsToSubscribe eventsToSubscribe) { if (eventsToSubscribe is null || !eventsToSubscribe.HasEvents) { return; } foreach (var @event in eventsToSubscribe.Events) { await this._eventBus.Subscribe(@event, this.HandleEvent); } }
public NotificationModule(Configurations configurations, EventsToSubscribe eventsToSubscribe, IEventBus eventBus) : base(configurations, eventsToSubscribe, eventBus) { this._container = this.BuildContainer(configurations, eventBus); }
protected abstract Task SubscribeEvents(EventsToSubscribe eventsToSubscribe);