/// <summary>
 /// Creates the Manager using the achievementDetector to find all available achievements.
 /// </summary>
 /// <param name="achievementDetector">Detector used to find the available achievements</param>
 /// <param name="achievementDb">Instance of the achievement database.</param>
 /// <param name="logger">Logger to use.</param>
 public AchievementCalculationManager(IAchievementCalculatorDetector achievementDetector,
     IAchievementDb achievementDb, ILoggerFacade logger)
 {
     _achievementDb = achievementDb;
     _logger = logger;
     _achievementCalculators = _getAvailableAchievementCalculators(achievementDetector);
     _updateTask = new Task(_updateAchievements);
 }
        private IList<IAchievementCalculator> _getAvailableAchievementCalculators(
            IAchievementCalculatorDetector achievementDetector)
        {
            var availableCalculators = achievementDetector.FindAllAchievementCalculator().ToList();

            var countOfAvailableCalculatorsMessage = $"Got {availableCalculators.Count} available achievements.";
            _logger.Log(countOfAvailableCalculatorsMessage, LogLevel.Info);

            return availableCalculators;
        }