public ActionResult RateExercise(int id) { var studentExercise = Db.StudentExercises .Include(p => p.StepExercise) .Include(p => p.StudentXRoadStep.RoadStep) .FirstOrDefault(p => p.Id == id); var model = new RateStepExerciseViewModel(); model.StepExercise = studentExercise.StepExercise; model.StepExerciseId = studentExercise.StepExercise.Id; model.RatingValue = RatingValue.Medium; model.RoadStepId = studentExercise.StudentXRoadStep.RoadStep.Id; return(View(model)); }
public ActionResult RateExercise(RateStepExerciseViewModel model) { var roadStep = Db.RoadSteps .Include(p => p.StepExercises) .FirstOrDefault(p => p.Id == model.RoadStepId); var currentStudent = CurrentStudentWithRoadSteps; currentStudent.RateExercise(roadStep, model.StepExerciseId, model.Comment, model.RatingValue); var allTeachers = Db.Teachers .Include(p => p.TeacherXRoadSteps) .ToList(); var reviewer = _exerciseReviewerFinder.Find(roadStep, allTeachers); reviewer.PrepareForReview(roadStep, model.StepExerciseId, currentStudent); Db.TrainingMessages.Add(new TrainingMessage("Review is required for " + roadStep.Name, reviewer.ParentUser, reviewer.ParentUser, null, null, roadStep)); Db.SaveChanges(); return(RedirectToAction("Step", "Library", new { @id = model.RoadStepId })); }