/// <summary> /// Initializes a new instance of the <see cref="NotificationStatusHandler"/> class. /// </summary> /// <param name="fulfillApiService">The fulfill API client.</param> /// <param name="planRepository">The plan repository.</param> /// <param name="applicationConfigRepository">The application configuration repository.</param> /// <param name="emailTemplateRepository">The email template repository.</param> /// <param name="planEventsMappingRepository">The plan events mapping repository.</param> /// <param name="offerAttributesRepository">The offer attributes repository.</param> /// <param name="eventsRepository">The events repository.</param> /// <param name="subscriptionRepository">The subscription repository.</param> /// <param name="usersRepository">The users repository.</param> /// <param name="offersRepository">The offers repository.</param> /// <param name="subscriptionTemplateParametersRepository">The subscription template parameters repository.</param> /// <param name="emailService">The email service.</param> /// <param name="emailHelper">The email helper.</param> /// <param name="logger">The logger.</param> public NotificationStatusHandler( IFulfillmentApiService fulfillApiService, IPlansRepository planRepository, IApplicationConfigRepository applicationConfigRepository, IEmailTemplateRepository emailTemplateRepository, IPlanEventsMappingRepository planEventsMappingRepository, IOfferAttributesRepository offerAttributesRepository, IEventsRepository eventsRepository, ISubscriptionsRepository subscriptionRepository, IUsersRepository usersRepository, IOffersRepository offersRepository, IEmailService emailService, ILogger <NotificationStatusHandler> logger) : base(subscriptionRepository, planRepository, usersRepository) { this.fulfillmentApiService = fulfillApiService; this.applicationConfigRepository = applicationConfigRepository; this.planEventsMappingRepository = planEventsMappingRepository; this.offerAttributesRepository = offerAttributesRepository; this.eventsRepository = eventsRepository; this.emailTemplateRepository = emailTemplateRepository; this.subscriptionRepository = subscriptionRepository; this.planRepository = planRepository; this.subscriptionService = new SubscriptionService(this.subscriptionRepository, this.planRepository); this.offersRepository = offersRepository; this.emailService = emailService; this.emailHelper = new EmailHelper(applicationConfigRepository, subscriptionRepository, emailTemplateRepository, planEventsMappingRepository, eventsRepository); this.logger = logger; }
/// <summary> /// Initializes a new instance of the <see cref="WebHookHandler" /> class. /// </summary> /// <param name="applicationLogRepository">The application log repository.</param> /// <param name="subscriptionsLogRepository">The subscriptions log repository.</param> /// <param name="subscriptionsRepository">The subscriptions repository.</param> /// <param name="planRepository">The plan repository.</param> /// <param name="offersAttributeRepository">The offers attribute repository.</param> /// <param name="offersRepository">The offers repository.</param> /// <param name="fulfillApiClient">The fulfill API client.</param> /// <param name="usersRepository">The users repository.</param> /// <param name="loggerFactory">The logger factory.</param> /// <param name="emailService">The email service.</param> /// <param name="eventsRepository">The events repository.</param> /// <param name="applicationConfigRepository">The application configuration repository.</param> /// <param name="emailTemplateRepository">The email template repository.</param> /// <param name="planEventsMappingRepository">The plan events mapping repository.</param> public WebHookHandler(IApplicationLogRepository applicationLogRepository, ISubscriptionLogRepository subscriptionsLogRepository, ISubscriptionsRepository subscriptionsRepository, IPlansRepository planRepository, IOfferAttributesRepository offersAttributeRepository, IOffersRepository offersRepository, IFulfillmentApiService fulfillApiService, IUsersRepository usersRepository, ILoggerFactory loggerFactory, IEmailService emailService, IEventsRepository eventsRepository, IApplicationConfigRepository applicationConfigRepository, IEmailTemplateRepository emailTemplateRepository, IPlanEventsMappingRepository planEventsMappingRepository) { this.applicationLogRepository = applicationLogRepository; this.subscriptionsRepository = subscriptionsRepository; this.planRepository = planRepository; this.subscriptionsLogRepository = subscriptionsLogRepository; this.applicationLogService = new ApplicationLogService(this.applicationLogRepository); this.subscriptionService = new SubscriptionService(this.subscriptionsRepository, this.planRepository); this.emailService = emailService; this.loggerFactory = loggerFactory; this.usersRepository = usersRepository; this.eventsRepository = eventsRepository; this.offersAttributeRepository = offersAttributeRepository; this.fulfillApiService = fulfillApiService; this.applicationConfigRepository = applicationConfigRepository; this.emailTemplateRepository = emailTemplateRepository; this.planEventsMappingRepository = planEventsMappingRepository; this.offersRepository = offersRepository; this.notificationStatusHandlers = new NotificationStatusHandler( fulfillApiService, planRepository, applicationConfigRepository, emailTemplateRepository, planEventsMappingRepository, offersAttributeRepository, eventsRepository, subscriptionsRepository, usersRepository, offersRepository, emailService, this.loggerFactory.CreateLogger <NotificationStatusHandler>()); }
/// <summary> /// Initializes a new instance of the <see cref="UnsubscribeStatusHandler" /> class. /// </summary> /// <param name="fulfillApiService">The fulfill API client.</param> /// <param name="subscriptionsRepository">The subscriptions repository.</param> /// <param name="subscriptionLogRepository">The subscription log repository.</param> /// <param name="plansRepository">The plans repository.</param> /// <param name="usersRepository">The users repository.</param> /// <param name="logger">The logger.</param> public UnsubscribeStatusHandler( IFulfillmentApiService fulfillApiService, ISubscriptionsRepository subscriptionsRepository, ISubscriptionLogRepository subscriptionLogRepository, IPlansRepository plansRepository, IUsersRepository usersRepository, ILogger <UnsubscribeStatusHandler> logger) : base(subscriptionsRepository, plansRepository, usersRepository) { this.fulfillmentApiService = fulfillApiService; this.subscriptionLogRepository = subscriptionLogRepository; this.logger = logger; }
/// <summary> /// Initializes a new instance of the <see cref="PendingFulfillmentStatusHandler" /> class. /// </summary> /// <param name="fulfillApiService">The fulfill API client.</param> /// <param name="applicationConfigRepository">The application configuration repository.</param> /// <param name="subscriptionsRepository">The subscriptions repository.</param> /// <param name="subscriptionLogRepository">The subscription log repository.</param> /// <param name="plansRepository">The plans repository.</param> /// <param name="usersRepository">The users repository.</param> /// <param name="logger">The logger.</param> public PendingFulfillmentStatusHandler( IFulfillmentApiService fulfillApiService, IApplicationConfigRepository applicationConfigRepository, ISubscriptionsRepository subscriptionsRepository, ISubscriptionLogRepository subscriptionLogRepository, IPlansRepository plansRepository, IUsersRepository usersRepository, ILogger <PendingFulfillmentStatusHandler> logger) : base(subscriptionsRepository, plansRepository, usersRepository) { this.fulfillmentApiService = fulfillApiService; this.applicationConfigRepository = applicationConfigRepository; this.subscriptionLogRepository = subscriptionLogRepository; this.logger = logger; }
/// <summary> /// Initializes a new instance of the <see cref="WebhookProcessor"/> class. /// </summary> /// <param name="apiClient">The API client.</param> /// <param name="webhookHandler">The webhook handler.</param> public WebhookProcessor(IFulfillmentApiService apiClient, IWebhookHandler webhookHandler) { this.apiClient = apiClient; this.webhookHandler = webhookHandler; }
/// <summary> /// Initializes a new instance of the <see cref="HomeController" /> class. /// </summary> /// <param name="logger">The logger.</param> /// <param name="apiClient">The API Client<see cref="IFulfilmentApiClient" />.</param> /// <param name="subscriptionRepo">The subscription repository.</param> /// <param name="planRepository">The plan repository.</param> /// <param name="userRepository">The user repository.</param> /// <param name="applicationLogRepository">The application log repository.</param> /// <param name="subscriptionLogsRepo">The subscription logs repository.</param> /// <param name="applicationConfigRepository">The application configuration repository.</param> /// <param name="emailTemplateRepository">The email template repository.</param> /// <param name="offersRepository">The offers repository.</param> /// <param name="planEventsMappingRepository">The plan events mapping repository.</param> /// <param name="offerAttributesRepository">The offer attributes repository.</param> /// <param name="eventsRepository">The events repository.</param> /// <param name="cloudConfigs">The cloud configs.</param> /// <param name="loggerFactory">The logger factory.</param> /// <param name="emailService">The email service.</param> public HomeController(ILogger <HomeController> logger, IFulfillmentApiService apiService, ISubscriptionsRepository subscriptionRepo, IPlansRepository planRepository, IUsersRepository userRepository, IApplicationLogRepository applicationLogRepository, ISubscriptionLogRepository subscriptionLogsRepo, IApplicationConfigRepository applicationConfigRepository, IEmailTemplateRepository emailTemplateRepository, IOffersRepository offersRepository, IPlanEventsMappingRepository planEventsMappingRepository, IOfferAttributesRepository offerAttributesRepository, IEventsRepository eventsRepository, ILoggerFactory loggerFactory, IEmailService emailService) { this.apiService = apiService; this.subscriptionRepository = subscriptionRepo; this.subscriptionLogRepository = subscriptionLogsRepo; this.applicationLogRepository = applicationLogRepository; this.planRepository = planRepository; this.userRepository = userRepository; this.userService = new UserService(this.userRepository); this.subscriptionService = new SubscriptionService(this.subscriptionRepository, this.planRepository); this.applicationLogService = new ApplicationLogService(this.applicationLogRepository); this.applicationConfigRepository = applicationConfigRepository; this.applicationConfigService = new ApplicationConfigService(this.applicationConfigRepository); this.emailTemplateRepository = emailTemplateRepository; this.planEventsMappingRepository = planEventsMappingRepository; this.offerAttributesRepository = offerAttributesRepository; this.logger = logger; this.offersRepository = offersRepository; this.planService = new PlanService(this.planRepository, this.offerAttributesRepository, this.offersRepository); this.eventsRepository = eventsRepository; this.emailService = emailService; this.loggerFactory = loggerFactory; this.pendingActivationStatusHandlers = new PendingActivationStatusHandler( apiService, subscriptionRepo, subscriptionLogsRepo, planRepository, userRepository, loggerFactory.CreateLogger <PendingActivationStatusHandler>()); this.pendingFulfillmentStatusHandlers = new PendingFulfillmentStatusHandler( apiService, applicationConfigRepository, subscriptionRepo, subscriptionLogsRepo, planRepository, userRepository, this.loggerFactory.CreateLogger <PendingFulfillmentStatusHandler>()); this.notificationStatusHandlers = new NotificationStatusHandler( apiService, planRepository, applicationConfigRepository, emailTemplateRepository, planEventsMappingRepository, offerAttributesRepository, eventsRepository, subscriptionRepo, userRepository, offersRepository, emailService, this.loggerFactory.CreateLogger <NotificationStatusHandler>()); this.unsubscribeStatusHandlers = new UnsubscribeStatusHandler( apiService, subscriptionRepo, subscriptionLogsRepo, planRepository, userRepository, this.loggerFactory.CreateLogger <UnsubscribeStatusHandler>()); }
/// <summary> /// Initializes a new instance of the <see cref="HomeController" /> class. /// </summary> /// <param name="usersRepository">The users repository.</param> /// <param name="billingApiService">The billing API service.</param> /// <param name="logger">The logger.</param> /// <param name="subscriptionRepo">The subscription repo.</param> /// <param name="planRepository">The plan repository.</param> /// <param name="subscriptionUsageLogsRepository">The subscription usage logs repository.</param> /// <param name="dimensionsRepository">The dimensions repository.</param> /// <param name="subscriptionLogsRepo">The subscription logs repo.</param> /// <param name="applicationConfigRepository">The application configuration repository.</param> /// <param name="userRepository">The user repository.</param> /// <param name="fulfillApiService">The fulfill API client.</param> /// <param name="applicationLogRepository">The application log repository.</param> /// <param name="emailTemplateRepository">The email template repository.</param> /// <param name="planEventsMappingRepository">The plan events mapping repository.</param> /// <param name="eventsRepository">The events repository.</param> /// <param name="options">The options.</param> /// <param name="cloudConfigs">The cloud configs.</param> /// <param name="loggerFactory">The logger factory.</param> /// <param name="emailService">The email service.</param> /// <param name="offersRepository">The offers repository.</param> /// <param name="offersAttributeRepository">The offers attribute repository.</param> public HomeController( IUsersRepository usersRepository, IMeteredBillingApiService billingApiService, ILogger <HomeController> logger, ISubscriptionsRepository subscriptionRepo, IPlansRepository planRepository, ISubscriptionUsageLogsRepository subscriptionUsageLogsRepository, IMeteredDimensionsRepository dimensionsRepository, ISubscriptionLogRepository subscriptionLogsRepo, IApplicationConfigRepository applicationConfigRepository, IUsersRepository userRepository, IFulfillmentApiService fulfillApiService, IApplicationLogRepository applicationLogRepository, IEmailTemplateRepository emailTemplateRepository, IPlanEventsMappingRepository planEventsMappingRepository, IEventsRepository eventsRepository, IOptions <SaaSApiClientConfiguration> options, ILoggerFactory loggerFactory, IEmailService emailService, IOffersRepository offersRepository, IOfferAttributesRepository offersAttributeRepository) { this.billingApiService = billingApiService; this.subscriptionRepo = subscriptionRepo; this.subscriptionLogRepository = subscriptionLogsRepo; this.planRepository = planRepository; this.subscriptionUsageLogsRepository = subscriptionUsageLogsRepository; this.dimensionsRepository = dimensionsRepository; this.logger = logger; this.applicationConfigRepository = applicationConfigRepository; this.applicationConfigService = new ApplicationConfigService(this.applicationConfigRepository); this.userRepository = userRepository; this.userService = new UserService(userRepository); this.fulfillApiService = fulfillApiService; this.applicationLogRepository = applicationLogRepository; this.applicationLogService = new ApplicationLogService(this.applicationLogRepository); this.subscriptionRepository = this.subscriptionRepo; this.subscriptionService = new SubscriptionService(this.subscriptionRepository, this.planRepository); this.emailTemplateRepository = emailTemplateRepository; this.planEventsMappingRepository = planEventsMappingRepository; this.eventsRepository = eventsRepository; this.emailService = emailService; this.offersRepository = offersRepository; this.offersAttributeRepository = offersAttributeRepository; this.loggerFactory = loggerFactory; this.pendingActivationStatusHandlers = new PendingActivationStatusHandler( fulfillApiService, subscriptionRepo, subscriptionLogsRepo, planRepository, userRepository, loggerFactory.CreateLogger <PendingActivationStatusHandler>()); this.pendingFulfillmentStatusHandlers = new PendingFulfillmentStatusHandler( fulfillApiService, applicationConfigRepository, subscriptionRepo, subscriptionLogsRepo, planRepository, userRepository, this.loggerFactory.CreateLogger <PendingFulfillmentStatusHandler>()); this.notificationStatusHandlers = new NotificationStatusHandler( fulfillApiService, planRepository, applicationConfigRepository, emailTemplateRepository, planEventsMappingRepository, offersAttributeRepository, eventsRepository, subscriptionRepo, userRepository, offersRepository, emailService, this.loggerFactory.CreateLogger <NotificationStatusHandler>()); this.unsubscribeStatusHandlers = new UnsubscribeStatusHandler( fulfillApiService, subscriptionRepo, subscriptionLogsRepo, planRepository, userRepository, this.loggerFactory.CreateLogger <UnsubscribeStatusHandler>()); }