예제 #1
0
        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));
        }
예제 #2
0
        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 }));
        }