diff --git a/src/ClientServer/Config/Constants.cs b/src/ClientServer/Config/Constants.cs index 074938eef6efc8bd65733589e5f9d5faf72fef6b..49bf7043e0a8321394c2b8049e246899c81a0b5a 100644 --- a/src/ClientServer/Config/Constants.cs +++ b/src/ClientServer/Config/Constants.cs @@ -13,7 +13,7 @@ namespace ClientServer.Helpers /// </summary> public static class Constants { - public static string VersionString = "2.6.3"; + public static string VersionString = "2.6.4"; /// <summary> /// this is only set once at program.cs!! diff --git a/src/ClientServer/Controllers/Core/Exercises/DoExerciseController.cs b/src/ClientServer/Controllers/Core/Exercises/DoExerciseController.cs index 26e4658a401a960d9f8de41f7609da555d710737..ef7e935ff8a73e78dbe90428a1c6f8fa2ca43d9f 100644 --- a/src/ClientServer/Controllers/Core/Exercises/DoExerciseController.cs +++ b/src/ClientServer/Controllers/Core/Exercises/DoExerciseController.cs @@ -575,10 +575,18 @@ namespace ClientServer.Controllers.Core.Exercises int userId = GetUserId(); - await _GetSolutionForExercise(generatedCode, pLangId, userId); + await _GetSolutionForExercise(generatedCode, pLangId, userId, false); } - internal async Task _GetSolutionForExercise(string generatedCode, int pLangId, int targetUserId) + /// <summary> + /// + /// </summary> + /// <param name="generatedCode"></param> + /// <param name="pLangId"></param> + /// <param name="targetUserId"></param> + /// <param name="asTutor">true: tutors need the hidden file content because currently tutor editors are not stored yet so only the frontend gives data to run tests for tutors... false: a student, so hide hidden files</param> + /// <returns></returns> + internal async Task _GetSolutionForExercise(string generatedCode, int pLangId, int targetUserId, bool asTutor) { int userId = targetUserId; @@ -715,8 +723,22 @@ namespace ClientServer.Controllers.Core.Exercises return; } - //template files should be loaded - var errorMsg = UserSolutionHelper.ReplaceReadonlyFiles(userSolution, template, true, false); + //template files should be loaded + + string errorMsg; + + if (asTutor) + { + //currently tutor editors are not persistent so the frontend needs all data to run a test + //this includes the hidden file contents... + errorMsg = UserSolutionHelper.ReplaceReadonlyFiles(userSolution, template, false, true); + } + else + { + //normal student, replace hidden files with empty content + errorMsg = UserSolutionHelper.ReplaceReadonlyFiles(userSolution, template, true, false); + } + if (errorMsg != null) { diff --git a/src/ClientServer/Controllers/Core/Exercises/TutorViewAssessmentController.cs b/src/ClientServer/Controllers/Core/Exercises/TutorViewAssessmentController.cs index 4c359f73d024a506a1ce0560a8a1d7fd465d7959..66f5a46b83f181b46b2766876d018814a8fd9e4d 100644 --- a/src/ClientServer/Controllers/Core/Exercises/TutorViewAssessmentController.cs +++ b/src/ClientServer/Controllers/Core/Exercises/TutorViewAssessmentController.cs @@ -361,7 +361,7 @@ namespace ClientServer.Controllers.Core.Exercises if (exerciseRelease == null) return; var doExerciseController = new DoExerciseController(_context) {ControllerContext = this.ControllerContext}; - await doExerciseController._GetSolutionForExercise(exerciseRelease.GeneratedCode, pLangId, userId); + await doExerciseController._GetSolutionForExercise(exerciseRelease.GeneratedCode, pLangId, userId, true); } [HttpGet("testresults/{exerciseReleaseId}/{userId}/{pLangId}")]