Code Duplication    Length = 27-29 lines in 2 locations

main/inc/lib/exercise.lib.php 2 locations

@@ 2881-2907 (lines=27) @@
2878
     *
2879
     * @return array
2880
     */
2881
    public static function get_best_attempt_in_course($exercise_id, $courseId, $session_id)
2882
    {
2883
        $user_results = Event::get_all_exercise_results(
2884
            $exercise_id,
2885
            $courseId,
2886
            $session_id,
2887
            false
2888
        );
2889
2890
        $best_score_data = array();
2891
        $best_score = 0;
2892
        if (!empty($user_results)) {
2893
            foreach ($user_results as $result) {
2894
                if (!empty($result['exe_weighting']) &&
2895
                    intval($result['exe_weighting']) != 0
2896
                ) {
2897
                    $score = $result['exe_result'] / $result['exe_weighting'];
2898
                    if ($score >= $best_score) {
2899
                        $best_score = $score;
2900
                        $best_score_data = $result;
2901
                    }
2902
                }
2903
            }
2904
        }
2905
2906
        return $best_score_data;
2907
    }
2908
2909
    /**
2910
     * Get the best score in a exercise (NO Exercises in LPs )
@@ 2918-2946 (lines=29) @@
2915
     *
2916
     * @return array
2917
     */
2918
    public static function get_best_attempt_by_user(
2919
        $user_id,
2920
        $exercise_id,
2921
        $courseId,
2922
        $session_id
2923
    )
2924
    {
2925
        $user_results = Event::get_all_exercise_results(
2926
            $exercise_id,
2927
            $courseId,
2928
            $session_id,
2929
            false,
2930
            $user_id
2931
        );
2932
        $best_score_data = array();
2933
        $best_score = 0;
2934
        if (!empty($user_results)) {
2935
            foreach ($user_results as $result) {
2936
                if (!empty($result['exe_weighting']) && intval($result['exe_weighting']) != 0) {
2937
                    $score = $result['exe_result'] / $result['exe_weighting'];
2938
                    if ($score >= $best_score) {
2939
                        $best_score = $score;
2940
                        $best_score_data = $result;
2941
                    }
2942
                }
2943
            }
2944
        }
2945
2946
        return $best_score_data;
2947
    }
2948
2949
    /**