public ActionResult <string> CopyCheck([FromBody] MossData data) { if (data?.ExerciseID == null) { return(BadRequest("no exercise")); } DBCode res = _access.CheckExercisePermission(data.ExerciseID, Role.Teacher); if (res != DBCode.OK) { return(HandleDatabaseOutput(res)); } (Exercise ex, DBCode code) = _access.GetExercise(data.ExerciseID); data.Language = ex.ProgrammingLanguage; if (code != DBCode.OK) { return(HandleDatabaseOutput(code)); } if (!MossClient.IsSupported(data.Language)) { var result = new ObjectResult($"The language {data.Language} is not supported."); result.StatusCode = 501; return(result); } string folder = ex.FilesLocation; string sub = Path.Combine(folder, SUBMISSIONS); Directory.CreateDirectory(sub); string baseFiles = Path.Combine(folder, BASE_FILES); Directory.CreateDirectory(baseFiles); data.SubmissionsFolder = sub; data.BaseFilesFolder = baseFiles; try { data.Result = _client.SendRequest(data); } catch (Exception) { return(new StatusCodeResult(502)); } _access.AddMossCheck(data); return(data.Result); }
public SubmissionController(DatabaseAccess access, MossClient client) : base(access) { _client = client; }