public async Task DoWork(CancellationToken stoppingToken) { while (!stoppingToken.IsCancellationRequested) { executionCount++; _logger.LogInformation( "Scoped Processing Service is working. Count: {Count}", executionCount); var broadcasts = await _broadcastService.GetBroadcastAsync(ProgramWeekday.Today); if (broadcasts.Count != _lastResult.Count) { broadcasts.RemoveRange(0, executionCount); await _updateHub.Clients.All.Update(DateTime.Now, true, broadcasts, $"{broadcasts.Count} slides"); } else { await _updateHub.Clients.All.Update(DateTime.Now, false, null, string.Empty); } _lastResult = broadcasts; await Task.Delay(_options.UpdateInterval, stoppingToken); } }