public SubscriberCollection(ISubscriberFinder <T> subscriberFinder, ISubscriberFactory <T> subscriberFactory) { subscribers = new ConcurrentBag <ISubscriber>(); foreach (var subscriberType in subscriberFinder.Find()) { ISubscriber subscriber = subscriberFactory.Create(subscriberType); Subscribe(subscriber); } }
public ISubscriber AddSubscriber(string emailAddress) { if (string.IsNullOrEmpty(emailAddress)) { throw new ArgumentException("Subscriber emailAddress required.", nameof(emailAddress)); } var subscriber = _subscriberFactory.Create(emailAddress); if (null == Subscribers) { Subscribers = new List <ISubscriber>(); } Subscribers.Add(subscriber); return(subscriber); }