| 1234567891011121314151617181920212223242526272829303132333435363738394041 | 
							- using System.Timers;
 
- using Microsoft.AspNetCore.SignalR;
 
- using Microsoft.Extensions.Configuration;
 
- using Result.Data;
 
- using Result.Hubs;
 
- namespace Result.Timers
 
- {
 
-     public class PublishResultsTimer
 
-     {        
 
-         private readonly IHubContext<ResultsHub> _hubContext;
 
-         private readonly IResultData _resultData;
 
-         private readonly Timer _timer;
 
-         public PublishResultsTimer(IHubContext<ResultsHub> hubContext, IResultData resultData, IConfiguration configuration)
 
-         {
 
-             _hubContext = hubContext;
 
-             _resultData = resultData;
 
-             var publishMilliseconds = configuration.GetValue<int>("ResultsTimer:PublishMilliseconds");
 
-             _timer = new Timer(publishMilliseconds)
 
-             {
 
-                 Enabled = false
 
-             };
 
-             _timer.Elapsed += PublishResults;
 
-         }
 
-         public void Start()
 
-         {
 
-             if (!_timer.Enabled)
 
-             {
 
-                 _timer.Start();
 
-             }
 
-         }
 
-         private void PublishResults(object sender, ElapsedEventArgs e)
 
-         {
 
-             var model = _resultData.GetResults();
 
-             _hubContext.Clients.All.SendAsync("UpdateResults", model);
 
-         }
 
-     }
 
- }
 
 
  |