Пример #1
0
 /// <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>());
        }