private string ReplaceCodeReviewsBuiltinParameters(string content, Certificate certificate, Course course) { var codeReviewsCount = slideCheckingsRepo.GetUsersPassedManualExerciseCheckings(course.Id, certificate.UserId).Count(); var exercisesMaxReviewScores = course.Slides .OfType <ExerciseSlide>().ToDictionary(s => s.Id, s => s.Scoring.CodeReviewScore); var codeReviewsFullCount = slideCheckingsRepo .GetUsersPassedManualExerciseCheckings(course.Id, certificate.UserId) .Count(s => s.Score == exercisesMaxReviewScores.GetOrDefault(s.SlideId, -1)); content = SubstituteOneParameter(content, "codereviews.passed", codeReviewsCount.ToString()); content = SubstituteOneParameter(content, "codereviews.passed_maxscore", codeReviewsFullCount.ToString()); return(content); }