public EmailAlertsService(RepositoryFactory repositoryFactory, ScheduleThreadApiInstance scheduleThreadApi, UserManager <User> userManager, IConfiguration configuration)
        {
            _syncRoot         = new SingleConcurrencyBlock();
            _period           = new TimeSpan(0, 1, 0);
            _timer            = new Timer(TimerCallBack, null, _period, _period);
            RepositoryFactory = repositoryFactory;
            ScheduleThreadApi = scheduleThreadApi;
            ThreadsRepository = repositoryFactory.CreateThreads();
            UserManager       = userManager;

            _email    = configuration["EmailDistributionSettings:Email"];
            _password = configuration["EmailDistributionSettings:Password"];
        }
示例#2
0
        public async Task InitializationAsync(IServiceCollection services, IConfiguration configuration)
        {
            await Task.Run(() =>
            {
                var geocoderApiKey       = configuration["GeocoderApiKey"] ?? Guid.NewGuid().ToString();
                var yandexScheduleApiKey = configuration["YandexScheduleApiKey"] ?? Guid.NewGuid().ToString();
                var cacheUpdatePeriod    = configuration["CacheUpdatePeriod"];

                var geocoderApi = new GeocoderApiInstance(geocoderApiKey);
                var cityCodeApi = new ScheduleCityCodeApiInstance(yandexScheduleApiKey);
                var threadApi   = new ScheduleThreadApiInstance(yandexScheduleApiKey);

                services.AddSingleton(new CitiesCache(geocoderApi, cityCodeApi, ParseCacheUpatePeriod(cacheUpdatePeriod)));
                services.AddSingleton(new ScheduleApiInstance(yandexScheduleApiKey));
                services.AddSingleton(new ScheduleThreadApiInstance(yandexScheduleApiKey));
            })
            .ConfigureAwait(continueOnCapturedContext: false);
        }
 public StarredThreadsProvider(ScheduleThreadApiInstance scheduleApi, RepositoryFactory repositoryFactory)
 {
     ScheduleThreadApi = scheduleApi;
     ThreadsRepository = repositoryFactory.CreateThreads();
 }