/// <summary> /// Initializes a new instance of the <see cref="HomeController" /> class. /// </summary> /// <param name="usersRepository">The users repository.</param> /// <param name="apiClient">The API client.</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="fulfillApiClient">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="subscriptionTemplateParametersRepository">The subscription template parameters repository.</param> /// <param name="cloudConfigs">The cloud configs.</param> public HomeController( IUsersRepository usersRepository, IMeteredBillingApiClient apiClient, ILogger <HomeController> logger, ISubscriptionsRepository subscriptionRepo, IPlansRepository planRepository, ISubscriptionUsageLogsRepository subscriptionUsageLogsRepository, IMeteredDimensionsRepository dimensionsRepository, ISubscriptionLogRepository subscriptionLogsRepo, IApplicationConfigRepository applicationConfigRepository, IUsersRepository userRepository, IFulfillmentApiClient fulfillApiClient, IApplicationLogRepository applicationLogRepository, IEmailTemplateRepository emailTemplateRepository, IPlanEventsMappingRepository planEventsMappingRepository, IEventsRepository eventsRepository, IOptions <SaaSApiClientConfiguration> options, CloudStorageConfigs cloudConfigs) { this.apiClient = apiClient; this.subscriptionRepo = subscriptionRepo; this.subscriptionLogRepository = subscriptionLogsRepo; this.planRepository = planRepository; this.subscriptionUsageLogsRepository = subscriptionUsageLogsRepository; this.dimensionsRepository = dimensionsRepository; this.logger = logger; this.applicationConfigRepository = applicationConfigRepository; this.usersRepository = usersRepository; this.userRepository = userRepository; this.userService = new UserService(userRepository); this.fulfillApiClient = fulfillApiClient; this.applicationLogRepository = applicationLogRepository; this.applicationLogService = new ApplicationLogService(this.applicationLogRepository); this.applicationConfigRepository = applicationConfigRepository; this.subscriptionRepository = this.subscriptionRepo; this.subscriptionService = new SubscriptionService(this.subscriptionRepository, this.planRepository); this.emailTemplateRepository = emailTemplateRepository; this.planEventsMappingRepository = planEventsMappingRepository; this.eventsRepository = eventsRepository; this.options = options; this.cloudConfigs = cloudConfigs; this.azureWebJobsStorage = cloudConfigs.AzureWebJobsStorage; }
/// <summary> /// Initializes a new instance of the <see cref="HomeController" /> class. /// </summary> /// <param name="UsersRepository">The users repository.</param> /// <param name="apiClient">The API client.</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> public HomeController(IUsersRepository UsersRepository, IMeteredBillingApiClient apiClient, ILogger <HomeController> logger, ISubscriptionsRepository SubscriptionRepo, IPlansRepository PlanRepository, ISubscriptionUsageLogsRepository SubscriptionUsageLogsRepository, IMeteredDimensionsRepository DimensionsRepository) { this.apiClient = apiClient; subscriptionRepo = SubscriptionRepo; planRepository = PlanRepository; subscriptionUsageLogsRepository = SubscriptionUsageLogsRepository; dimensionsRepository = DimensionsRepository; _logger = logger; usersRepository = UsersRepository; }
/// <summary> /// Initializes a new instance of the <see cref="HomeController" /> class. /// </summary> /// <param name="UsersRepository">The users repository.</param> /// <param name="apiClient">The API client.</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> public HomeController(IUsersRepository UsersRepository, IMeteredBillingApiClient apiClient, ILogger <HomeController> logger, ISubscriptionsRepository SubscriptionRepo, IPlansRepository PlanRepository, ISubscriptionUsageLogsRepository SubscriptionUsageLogsRepository, IMeteredDimensionsRepository DimensionsRepository, ISubscriptionLogRepository subscriptionLogsRepo, IApplicationConfigRepository applicationConfigRepository, IUsersRepository userRepository, IFulfillmentApiClient fulfillApiClient, IApplicationLogRepository applicationLogRepository, IEmailTemplateRepository emailTemplateRepository) { this.apiClient = apiClient; subscriptionRepo = SubscriptionRepo; this.subscriptionLogRepository = subscriptionLogsRepo; planRepository = PlanRepository; subscriptionUsageLogsRepository = SubscriptionUsageLogsRepository; dimensionsRepository = DimensionsRepository; this.logger = logger; this.applicationConfigRepository = applicationConfigRepository; usersRepository = UsersRepository; this.userRepository = userRepository; this.userService = new UserService(userRepository); this.fulfillApiClient = fulfillApiClient; webSubscriptionService = new WebSubscriptionService(this.subscriptionRepo, this.planRepository); this.applicationLogRepository = applicationLogRepository; this.applicationLogService = new ApplicationLogService(this.applicationLogRepository); this.applicationConfigRepository = applicationConfigRepository; this.subscriptionRepository = subscriptionRepo; this.subscriptionService = new SubscriptionService(this.subscriptionRepository, this.planRepository); this.emailTemplateRepository = emailTemplateRepository; }
/// <summary> /// Initializes a new instance of the <see cref="HomeController" /> class. /// </summary> /// <param name="usersRepository">The users repository.</param> /// <param name="apiClient">The API client.</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="fulfillApiClient">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, IMeteredBillingApiClient apiClient, ILogger <HomeController> logger, ISubscriptionsRepository subscriptionRepo, IPlansRepository planRepository, ISubscriptionUsageLogsRepository subscriptionUsageLogsRepository, IMeteredDimensionsRepository dimensionsRepository, ISubscriptionLogRepository subscriptionLogsRepo, IApplicationConfigRepository applicationConfigRepository, IUsersRepository userRepository, IFulfillmentApiClient fulfillApiClient, IApplicationLogRepository applicationLogRepository, IEmailTemplateRepository emailTemplateRepository, IPlanEventsMappingRepository planEventsMappingRepository, IEventsRepository eventsRepository, IOptions <SaaSApiClientConfiguration> options, ILoggerFactory loggerFactory, IEmailService emailService, IOffersRepository offersRepository, IOfferAttributesRepository offersAttributeRepository) { this.apiClient = apiClient; this.subscriptionRepo = subscriptionRepo; this.subscriptionLogRepository = subscriptionLogsRepo; this.planRepository = planRepository; this.subscriptionUsageLogsRepository = subscriptionUsageLogsRepository; this.dimensionsRepository = dimensionsRepository; this.logger = logger; this.applicationConfigRepository = applicationConfigRepository; this.userRepository = userRepository; this.userService = new UserService(userRepository); this.fulfillApiClient = fulfillApiClient; this.applicationLogRepository = applicationLogRepository; this.applicationLogService = new ApplicationLogService(this.applicationLogRepository); this.applicationConfigRepository = applicationConfigRepository; 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( fulfillApiClient, subscriptionRepo, subscriptionLogsRepo, planRepository, userRepository, loggerFactory.CreateLogger <PendingActivationStatusHandler>()); this.pendingFulfillmentStatusHandlers = new PendingFulfillmentStatusHandler( fulfillApiClient, applicationConfigRepository, subscriptionRepo, subscriptionLogsRepo, planRepository, userRepository, this.loggerFactory.CreateLogger <PendingFulfillmentStatusHandler>()); this.notificationStatusHandlers = new NotificationStatusHandler( fulfillApiClient, planRepository, applicationConfigRepository, emailTemplateRepository, planEventsMappingRepository, offersAttributeRepository, eventsRepository, subscriptionRepo, userRepository, offersRepository, emailService, this.loggerFactory.CreateLogger <NotificationStatusHandler>()); this.unsubscribeStatusHandlers = new UnsubscribeStatusHandler( fulfillApiClient, subscriptionRepo, subscriptionLogsRepo, planRepository, userRepository, this.loggerFactory.CreateLogger <UnsubscribeStatusHandler>()); }