/// <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; }