public async Task <IActionResult> PutExerciseResult([FromRoute] int id, [FromBody] ExerciseResult exerciseResult) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != exerciseResult.Id) { return(BadRequest()); } _context.Entry(exerciseResult).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ExerciseResultExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public IActionResult Result([FromBody] SolveExerciseModel se) { var user = db.Users.FirstOrDefault(u => u.UserName == User.Identity.Name); var exerciseResultExists = db.ExerciseResults.Where(er => er.ExerciseId == se.Id && er.UserId == user.Id).Any(); if (exerciseResultExists) { var exerciseResult = db.ExerciseResults.FirstOrDefault(er => er.ExerciseId == se.Id && er.UserId == user.Id); exerciseResult.Score = se.Score; db.ExerciseResults.Update(exerciseResult); db.SaveChanges(); } else { var newExerciseResult = new ExerciseResult { ExerciseId = se.Id, UserId = user.Id, Score = se.Score }; db.ExerciseResults.Add(newExerciseResult); db.SaveChanges(); } return(Json(new { message = "Success!" })); }
public static OperationResult <JudgeResult> JudgeExercise(Exercise exercise, ExerciseResult exerciseResult, User user) { JudgeResult judgeResult = null; try { judgeResult = ExerciseGeneratorFactory.DriveGenerator().JudgeExercise(exercise, exerciseResult); JudgeInfo judgeInfo = DataBaseFactory.DriveDataBase().GetJudgeInfo(user.UserID); if (judgeInfo == null) { return(new OperationResult <JudgeResult>("批改失败!", true, null)); } judgeInfo.QuestionNum += judgeResult.TotalNum; judgeInfo.QuestionErrorNum += judgeResult.ErrorNum; judgeInfo.LastestCompleteTime = DateTime.Now; if (!JudgeInfoLogic.UpdateJudgeInfo(judgeInfo, user)) { return(new OperationResult <JudgeResult>("更改批改信息失败!", true, null)); } } catch (Exception e) { return(new OperationResult <JudgeResult>("批改失败!" + e.Message, true, null)); } return(new OperationResult <JudgeResult>("批改成功!", true, judgeResult)); }
public ExerciseUI(Exercise exercise, ExerciseResult res) { this.ID = exercise.ID; this.SortOrder = exercise.SortOrder; this.Title = exercise.Title; this.Description = exercise.Description; this.HasInteractive = exercise.Content.HasInteractive; this.Html = exercise.Content.Html; if (res != null) { this.Html = res.Html ?? this.Html; this.Complete = res.End != null; this.Points = res.Points; this.HasInteractive = this.HasInteractive && !this.Complete; } if (this.Complete) { this.Passed = true; if (exercise.Content.HasInteractive) { this.Passed = this.Points > 0; } } }
private void reset_timer(object sender, RoutedEventArgs e) { //Debug.WriteLine(App.viewModel.stopwatch.ElapsedMilliseconds); App.viewModel.timer.Reset(); ExerciseResult testresult = new ExerciseResult(); Debug.WriteLine(testresult.Name); App.recordBook.Records.Add("test", testresult); Debug.WriteLine("Attempting to print a record" + App.recordBook.Records["test"].Name); }
public static void Main(string[] args) { Console.WriteLine("输入创建用户名,例如:FREEstrikerABbo"); //string userName = Console.ReadLine(); string userName = "******"; Console.WriteLine("输入创建密码,例如:1236zccg99326TEST"); //string password = Console.ReadLine(); string password = "******"; Console.WriteLine(UserLogic.CreateUser(userName, password).Prompt); var userOR = UserLogic.LogInUser(userName, password); Console.WriteLine(userOR.Prompt); var userInfoOR = UserInfoLogic.GetUserInfo(userOR.Result); Console.WriteLine(userInfoOR.Prompt); var judgeInfoOR = JudgeInfoLogic.GetJudgeInfo(userOR.Result); Console.WriteLine(judgeInfoOR.Prompt); ExerciseOption exerciseOption = new ExerciseOption(IntervalType.LE10, //OperationType.Plus | //OperationType.Sub | //OperationType.Mul | //OperationType.Div | OperationType.DivWithRemainder, QuantityType.E10); var exerciseOR = ExerciseLogic.GetExercise(exerciseOption); Console.WriteLine(exerciseOR.Prompt); for (int i = 0; i < exerciseOR.Result.ExerciseUnits.Length; i++) { Console.WriteLine(exerciseOR.Result.ExerciseUnits[i].Topic); } Console.WriteLine("输入答案:"); ExerciseResult exerciseResult = new ExerciseResult() { ExerciseResultUnit = new ExerciseResultUnit[exerciseOR.Result.ExerciseUnits.Length] }; for (int i = 0; i < exerciseOR.Result.ExerciseUnits.Length; i++) { exerciseResult.ExerciseResultUnit[i].Remainder = 0; exerciseResult.ExerciseResultUnit[i].Result = Convert.ToInt32(Console.ReadLine()); } var judgeResultOR = ExerciseLogic.JudgeExercise(exerciseOR.Result, exerciseResult, userOR.Result); Console.WriteLine(judgeResultOR.Prompt); userInfoOR = UserInfoLogic.GetUserInfo(userOR.Result); Console.WriteLine(userInfoOR.Prompt); judgeInfoOR = JudgeInfoLogic.GetJudgeInfo(userOR.Result); Console.WriteLine(judgeInfoOR.Prompt); Console.WriteLine(UserLogic.DeleteUser(userOR.Result).Prompt); Console.ReadKey(); }
private ExerciseResult CreateExerciseResultFromRawData(List<string> data) { ExerciseResult er = new ExerciseResult(); ExerciseResultExerciseGroup exerciseGroup = new ExerciseResultExerciseGroup(); foreach (string dataMessage in data) { } return er; }
public async Task <IActionResult> PostExerciseResult([FromBody] ExerciseResult exerciseResult) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } _context.ExerciseResults.Add(exerciseResult); await _context.SaveChangesAsync(); return(CreatedAtAction("GetExerciseResult", new { id = exerciseResult.Id }, exerciseResult)); }
// Add an exerciseResult based on planning ID and today's date private void AddExerciseResultByPlanningID(ExerciseResult exerciseResult, long user_ID, long exercisePlanning_ID) { using (var scope = _scopeFactory.CreateScope()) { var today = DateTime.UtcNow; var dbContext = scope.ServiceProvider.GetRequiredService <Context>(); var exerciseSession = dbContext.ExerciseSessions .Where(e => e.ExercisePlanning_ID == exercisePlanning_ID && e.Date.Date == today.Date && e.ExercisePlanning.UserExercise.User_ID == user_ID).First(); exerciseSession.IsComplete = true; exerciseSession.Date = DateTime.Now; dbContext.Update(exerciseSession); exerciseResult.ExerciseSession = exerciseSession; dbContext.Add(exerciseResult); dbContext.SaveChanges(); } }
public JudgeResult JudgeExercise(Exercise exercise, ExerciseResult exerciseResult) { List <ExerciseUnit> exerciseUnits = new List <ExerciseUnit>(); List <int> exerciseIndex = new List <int>(); int errorNum = 0; for (int i = 0; i < exercise.ExerciseUnits.Length; i++) { if (exercise.ExerciseUnits[i].Result == exerciseResult.ExerciseResultUnit[i].Result && exercise.ExerciseUnits[i].Remainder == exerciseResult.ExerciseResultUnit[i].Remainder) { } else { errorNum++; exerciseUnits.Add(exercise.ExerciseUnits[i]); exerciseIndex.Add(i); } } return(new JudgeResult(exercise.TotalNum, errorNum, exercise.StartTime, DateTime.Now, exerciseUnits.ToArray(), exerciseIndex.ToArray())); }
public IActionResult Add([FromBody] ClientExerciseResult clientExerciseResult) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var user_ID = _jwtHandler.GetUserID(_httpContextAccessor.HttpContext); var planning_ID = clientExerciseResult.ExercisePlanning_ID; byte[] Recording = Helper.Compress(clientExerciseResult.Result); ExerciseResult exerciseResult = new ExerciseResult { Duration = clientExerciseResult.Duration, Score = clientExerciseResult.Score, Result = Recording, }; _exerciseResultService.AddByPlanningID(exerciseResult, user_ID, planning_ID); return(NoContent()); }
private LabWorkResult AddLabWorkResult(ExerciseResult exerciseResult) { var exercise = db .Exercises .Include(x => x.LabWork) .FirstOrDefault(x => x.Id == exerciseResult.Exercise.Id); if (exercise == null) { throw new NotSupportedException(); } var labWorkResult = db.LabWorkResults.FirstOrDefault( x => x.LabWork.Id == exercise.LabWork.Id && x.Student.Id == exerciseResult.Student.Id); if (labWorkResult == null) { labWorkResult = new LabWorkResult { LabWork = exercise.LabWork, ExerciseResults = new List <ExerciseResult>(), Student = exerciseResult.Student }; db.LabWorkResults.Add(labWorkResult); } labWorkResult.ExerciseResults.Add(exerciseResult); var mark = labWorkResult.ExerciseResults.Select(x => x.Mark).Sum(); labWorkResult.Mark = mark; //db.SaveChanges(); return(labWorkResult); }
private ExerciseResult AddExerciseResult(Submission submission) { var previousExerciseResult = db.ExerciseResults.FirstOrDefault(x => x.Exercise.Id == submission.Exercise.Id && x.Student.User.UserName == User.Identity.Name); if (previousExerciseResult != null) { db.ExerciseResults.Remove(previousExerciseResult); db.SaveChanges(); } var passedTests = submission.TestResults.Count(x => x.IsPassed); var totalTests = submission.TestResults.Count; int mark; if (totalTests == 0) { mark = 0; } else { mark = submission.Exercise.Value * passedTests / totalTests; } var exerciseResult = new ExerciseResult { Exercise = submission.Exercise, Student = submission.Student, Submission = submission, Mark = mark }; db.ExerciseResults.Add(exerciseResult); //db.SaveChanges(); return(exerciseResult); }
public void AddByPlanningID(ExerciseResult exerciseResult, long user_ID, long exercisePlanning_ID) => AddExerciseResultByPlanningID(exerciseResult, user_ID, exercisePlanning_ID);
private void HydrateObject(ExerciseResult result, string accountId) { this.Result = result; this.AccountID = accountId; }
public async Task <Unit> Handle(Command request, CancellationToken cancellationToken) { var currentUserName = _userAccessor.GetCurrentUsername(); if (currentUserName == null) { throw new RestException(HttpStatusCode.Unauthorized, new { Role = "Brak uprawnień" }); } var currentUser = await _userManager.FindByNameAsync(currentUserName); if (currentUser == null) { throw new RestException(HttpStatusCode.Unauthorized, new { Role = "Brak uprawnień" }); } if (currentUser.Role != Role.Student) { throw new RestException(HttpStatusCode.Unauthorized, new { Role = "Tylko Student może rozwiązywać zadania" }); } var exercise = await _context.Exercises.Where(x => x.Id == request.Id).FirstOrDefaultAsync(); var tests = await _context.CorrectnessTests .Where(x => x.ExerciseId == exercise.Id) .Include(x => x.Inputs) .Include(x => x.Outputs) .ToListAsync(); if (exercise == null) { throw new RestException(HttpStatusCode.Unauthorized, new { Exercise = "Nie znaleziono zadania" }); } var correctnessTestsResults = new List <CorrectnessTestResult>(); foreach (var test in tests) { var submission = ConvertToSubmission(request.Code, exercise.ProgrammingLanguage, test.Inputs.Select(x => x.Content).ToArray(), test.Outputs.Select(x => x.Content).ToArray()); var response = await _apiCompiler.SendSubmission(submission); var result = new CorrectnessTestResult() { CorrectnessTestId = test.Id, Memory = response.memory ?? 0, CompileOutput = response.compile_output, Error = response.stderr, Message = response.message, Status = response.status.description, Time = response.time ?? "0 ", }; correctnessTestsResults.Add(result); } var exerciseResult = new ExerciseResult() { Code = request.Code, StudentId = currentUser.Id, GroupId = request.GroupId, CorrectnessTestResults = correctnessTestsResults, }; await _context.ExerciseResults.AddAsync(exerciseResult); var success = await _context.SaveChangesAsync() > 0; if (success) { return(Unit.Value); } throw new Exception("Problem podczas zapisu"); }
public void Execute(object param) { word.State = State.Learning; Result = ExerciseResult.Repeat; }
protected void Submit_Prac(object sender, EventArgs e) { //if (!IsPostBack) { Debug.WriteLine("Submit_Prac_Start"); TextBox txt; //HtmlGenericControl p = new HtmlGenericControl("p"); ExerciseResult ExerciseResult = new ExerciseResult() { ExerciseResultUnit = new ExerciseResultUnit[num] }; for (int i = 0; i < num; i++) { txt = exercise_frame.FindControl("result" + i.ToString()) as TextBox; ExerciseResult.ExerciseResultUnit[i].Remainder = 0; if (Regex.IsMatch(txt.Text, @"^[_0-9]{1,20}$")) { ExerciseResult.ExerciseResultUnit[i].Result = Convert.ToInt32(txt.Text); } else { ExerciseResult.ExerciseResultUnit[i].Result = -1; } } if (Type == "D") { for (int i = 0; i < num; i++) { txt = exercise_frame.FindControl("remainder" + i.ToString()) as TextBox; if (Regex.IsMatch(txt.Text, @"^[_0-9]{1,20}$")) { ExerciseResult.ExerciseResultUnit[i].Remainder = Convert.ToInt32(txt.Text); } else { ExerciseResult.ExerciseResultUnit[i].Remainder = -1; } } } CalculateOnlineJudge.Entity.User user = new CalculateOnlineJudge.Entity.User(Convert.ToInt32(UserId), Username); var judgeResult = ExerciseLogic.JudgeExercise(ExerciseOR.Result, ExerciseResult, user); if (judgeResult.IsSuccess) { Label2.Text = judgeResult.Prompt; for (int i = 0; i < num; i++) { Label jdglabel; jdglabel = exercise_frame.FindControl("dynalabel" + i.ToString()) as Label; jdglabel.Text = "√"; } for (int i = 0; i < judgeResult.Result.ErrorExerciseIndex.Length; i++) { Label jdglabel; jdglabel = exercise_frame.FindControl("dynalabel" + judgeResult.Result.ErrorExerciseIndex[i].ToString()) as Label; jdglabel.Text = "×"; } //Label3.Text = judgeResult.Result.TotalNum.ToString(); Label4.Text = "共答对: " + (judgeResult.Result.TotalNum - judgeResult.Result.ErrorNum).ToString() + "题"; } else { MessaegBox("结果异常异常"); } Button1_Practice.Visible = false; } }
public IndivoExerciseResult(ExerciseResult result, string accountId) { HydrateObject(result, accountId); }