public CampaignLogicFactory(
            ISubscriberTrackingService<ApplicationSummary> applicationSubscriberTrackingService,
            IDataGatherFactory<ApplicationSummary> applicationGatherFactory,
            IDataGatherFactory<LandlordSummary> landlordGatherFactory,
            ISubscriberTrackingService<LandlordSummary> landlordSubscriberTrackingService,
            IApplicationService applicationService,
            ILetMeServiceUrlSettings letMeServiceUrlSettings,
            ISubscriberRecordService subscriberRecordService,
            ILogger logger
            )
        {
            Check.If(landlordSubscriberTrackingService).IsNotNull();
            Check.If(applicationService).IsNotNull();
            Check.If(applicationGatherFactory).IsNotNull();
            Check.If(letMeServiceUrlSettings).IsNotNull();
            Check.If(landlordSubscriberTrackingService).IsNotNull();

            _campaignLogic = new List<ICampaignLogic>
            {
                new AddApplicationNoGuarantorEventLogic(applicationGatherFactory, applicationSubscriberTrackingService, logger),
                new NewPropertyAddedEventLogic(applicationGatherFactory, applicationSubscriberTrackingService, letMeServiceUrlSettings, subscriberRecordService, logger),
                new BookAViewingCampaignLogic(applicationGatherFactory, applicationSubscriberTrackingService),
                new DeclinedGuarantorCampaignLogic(applicationGatherFactory, applicationSubscriberTrackingService),
                new NewPropertySubmissionCampaignLogic(landlordGatherFactory,landlordSubscriberTrackingService)
            };
        }
        public SubscriberService(ISubscriberRecordRepository subscriberRecordRepository, IPipeline<SubscriberRecord> pipeline, ISubscriberRecordService subscriberRecordService)
        {
            Check.If(subscriberRecordRepository).IsNotNull();
            Check.If(pipeline).IsNotNull();
            Check.If(subscriberRecordService).IsNotNull();

            _subscriberRecordRepository = subscriberRecordRepository;
            _pipeline = pipeline;
            _subscriberRecordService = subscriberRecordService;
        }
        public NewPropertyAddedEventLogic(IDataGatherFactory<ApplicationSummary> dataGatherFactory,
            ISubscriberTrackingService<ApplicationSummary> subscriberTrackingService, ILetMeServiceUrlSettings urlSettings,
            ISubscriberRecordService recordService, ILogger logger)
        {
            Check.If(dataGatherFactory).IsNotNull();
            Check.If(subscriberTrackingService).IsNotNull();
            Check.If(urlSettings).IsNotNull();
            Check.If(recordService).IsNotNull();
            Check.If(logger).IsNotNull();

            _dataGatherFactory = dataGatherFactory;
            _recordService = recordService;
            _logger = logger;
            _subscriberTrackingService = subscriberTrackingService;

            CampaignType = "NewPropertyAdded";
        }