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"]; }
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(); }