Example #1
0
        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);
            }
        }