public async Task <IActionResult> CheckLog( [FromRoute] Guid solutionId, [FromRoute] Guid testDataId, [FromBody] SolutionCheckRequest request) { var solution = await dbContext.Solutions.SingleOrDefaultAsync(s => s.Id == solutionId); if (solution == null) { return(NotFound("solution not found")); } var testData = await dbContext.TestData .Where(td => td.Id == testDataId) .Where(td => td.ExerciseDataGroup.ExerciseId == solution.ExerciseId) .SingleOrDefaultAsync(); if (testData == null) { return(NotFound("exercise data not found")); } var newCheck = mapper.Map <SolutionCheck>(request); newCheck.SolutionId = solution.Id; newCheck.TestDataId = testData.Id; newCheck.CheckedTime = DateTimeOffset.UtcNow; dbContext.SolutionChecks.Add(newCheck); await dbContext.SaveChangesAsync(); return(Ok()); }
public async Task SaveLog(Guid solutionId, Guid testDataId, SolutionCheckRequest solutionCheck) { if (solutionCheck.ProgramOut.Length > 500_000) { logger.LogWarning($"Trim program out"); solutionCheck.ProgramOut = solutionCheck.ProgramOut.Substring(0, 500_000); } var jsonString = JsonConvert.SerializeObject(solutionCheck); var content = new StringContent(jsonString, Encoding.UTF8, "application/json"); var result = await InvokePostInternal($"api/executor/checklog/{solutionId}/{testDataId}", content); logger.LogDebug($"Sended logs, status code: {result.StatusCode}"); }