private async Task PenaltyWorker(CancellationToken cancellationToken) { try{ var penalties = await _repository.GetActivePenalties(cancellationToken); foreach (var penalty in penalties) { if (cancellationToken.IsCancellationRequested) { return; } try{ _logger.LogInformation($"PenaltyWorker: Start process penalty: {penalty.Id}"); await _penaltyProcessor.Process(penalty, cancellationToken); await _repository.Save(penalty); _logger.LogInformation($"PenaltyWorker: End process penalty: {penalty.Id}"); } catch (Exception e) { _logger.LogError(e, $"PenaltyWorker: {e.Message}"); } } } catch (Exception e) { _logger.LogError(e, $"PenaltyWorker: {e.Message}"); } }