public async Task <IActionResult> Display(DisplayTestsViewModel displayTestViewModel) { if (ModelState.IsValid) { var exerciseResponse = new ExerciseResponse(); exerciseResponse.UserId = displayTestViewModel.UserId; exerciseResponse.ExerciseId = displayTestViewModel.ExerciseId; exerciseResponse.TestInstanceId = displayTestViewModel.TestInstanceId; var answers = new List <MarkedAsCorrect>(); foreach (var item in displayTestViewModel.Answers) { if (item.Correct) { answers.Add(new MarkedAsCorrect() { AnswerId = item.Id, ExerciseId = displayTestViewModel.ExerciseId, TestInstanceId = displayTestViewModel.TestInstanceId, UserId = displayTestViewModel.UserId }); } } exerciseResponse.MarkedAsCorrects = answers; await _testInstancesRepository.InsertExerciseResponseAsync(exerciseResponse); return(RedirectToAction(nameof(Display), new { id = displayTestViewModel.TestInstanceId })); } return(View(displayTestViewModel)); }
public async Task <IActionResult> ExercisesCreate( [HttpTrigger(AuthorizationLevel.User, "post", Route = "exercises")] [RequestBodyType(typeof(ExerciseBody), "The exercise to create")] HttpRequest req, [SwaggerIgnore] ClaimsPrincipal user) { // user must be admin if (!user.IsInRole(UserType.Admin.ToString())) { return(ForbiddenObjectResult.Create(new ErrorResponse(ErrorCode.UNAUTHORIZED_ROLE_NO_PERMISSIONS))); } // deserialize request ExerciseBody exerciseBody; try { exerciseBody = await SerializationUtil.Deserialize <ExerciseBody>(req.Body); } catch (JsonException e) { return(new BadRequestObjectResult(new ErrorResponse(400, e.Message))); } // create exercise Exercise createdExercise = await this.exerciseService.CreateExercise(exerciseBody); // get exercise ExerciseResponse response = await this.exerciseService.GetExerciseById(createdExercise.Id); return(new OkObjectResult(response)); }
public async Task <IActionResult> ExercisesGet( [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "exercises/{exerciseId}")] HttpRequest req, int exerciseId) { // if the exercise does not exist if (!await this.exerciseService.Exists(exerciseId)) { return(new NotFoundObjectResult(new ErrorResponse(ErrorCode.EXERCISE_NOT_FOUND))); } // get exercise ExerciseResponse exercise = await exerciseService.GetExerciseById(exerciseId); return(new OkObjectResult(exercise)); }
public async Task <ExerciseResponse> InsertExerciseResponseAsync(ExerciseResponse exerciseResponse) { var markedAsCorrects = exerciseResponse.MarkedAsCorrects; exerciseResponse.MarkedAsCorrects = null; _context.ExerciseResponses.Add(exerciseResponse); await _context.SaveChangesAsync(); foreach (var item in markedAsCorrects) { _context.MarkedAsCorrects.Add(item); } await _context.SaveChangesAsync(); return(exerciseResponse); }
public async Task <ExerciseResponse> GetExerciseById(int exerciseId) { // get exercise Exercise exercise = await exerciseRepository.ReadAsync(exerciseId); // create response ExerciseResponse response = new ExerciseResponse { Id = exercise.Id, Name = exercise.Name, Media = exercise.Media, Requirements = exercise.ExerciseRequirements.Select(r => r.Requirement).ToList(), Steps = exercise.ExerciseSteps.Select(s => s.StepDescription).ToList(), Forms = exercise.ExerciseForms.Select(f => f.MovementForm).ToList() }; return(response); }