예제 #1
0
        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);
        }