Beispiel #1
0
        /// <summary>
        /// Executes monitoring for all sites in DB and updates their availability status.
        /// </summary>
        /// <param name="cancellationToken">cancellation token</param>
        /// <returns><see cref="Task"/></returns>
        protected override async Task ExecuteAsync(CancellationToken cancellationToken)
        {
            while (!cancellationToken.IsCancellationRequested)
            {
                IEnumerable <Site> sites = await _siteAvailabilityRepository.GetAllSitesAsync();

                foreach (var site in sites)
                {
                    _siteAvailabilityProvider.OpenSite(site.Id, site.Url, cancellationToken);
                }
                await Task.Delay(TimeSpan.FromSeconds(await _siteAvailabilityRepository.GetPeriodSecondsAsync()), cancellationToken);
            }
        }
Beispiel #2
0
 public async Task <int> GetPeriodSecondsAsync()
 {
     return(await _siteAvailabilityRepository.GetPeriodSecondsAsync());
 }