private static SolutionAnalysis AnalyzeExerciseSpecificRules(ParsedSolution parsedSolution)
        {
            switch (parsedSolution.Solution.Slug)
            {
            case Exercises.TwoFer:
                return(TwoFerAnalyzer.Analyze(parsedSolution));

            case Exercises.Gigasecond:
                return(GigasecondAnalyzer.Analyze(parsedSolution));

            case Exercises.Leap:
                return(LeapAnalyzer.Analyze(parsedSolution));

            default:
                return(UnsupportedExerciseAnalyzer.Analyze(parsedSolution));
            }
        }
 private static SolutionAnalysis AnalyzeSharesRules(ParsedSolution parsedSolution) =>
 SharedAnalyzer.Analyze(parsedSolution);
 private static SolutionAnalysis AnalyzeSolution(ParsedSolution parsedSolution) =>
 AnalyzeSharesRules(parsedSolution) ??
 AnalyzeExerciseSpecificRules(parsedSolution);