Exemplo n.º 1
0
        private async Task <AcceptedSolutionsPageModel> CreateAcceptedSolutionsModel(Course course, ExerciseSlide slide, bool isLti)
        {
            var userId   = User.Identity.GetUserId();
            var isPassed = visitsRepo.IsPassed(course.Id, slide.Id, userId);

            if (!isPassed)
            {
                await visitsRepo.SkipSlide(course.Id, slide.Id, userId);
            }
            var submissions = solutionsRepo.GetBestTrendingAndNewAcceptedSolutions(course.Id, slide.Id);

            foreach (var submission in submissions)
            {
                submission.LikedAlready      = submission.UsersWhoLike.Any(u => u == userId);
                submission.RemoveSolutionUrl = Url.Action("RemoveSubmission", "Course", new { course.Id, slideId = slide.Id, submissionId = submission.Id });
            }

            var model = new AcceptedSolutionsPageModel
            {
                CourseId          = course.Id,
                CourseTitle       = course.Title,
                Slide             = slide,
                AcceptedSolutions = submissions,
                User            = User,
                LikeSolutionUrl = Url.Action("LikeSolution"),
                IsLti           = isLti,
                IsPassed        = isPassed
            };

            return(model);
        }
Exemplo n.º 2
0
        public async Task <ViewResult> AcceptedSolutions(string courseId, int slideIndex = 0, bool isLti = false)
        {
            var userId   = User.Identity.GetUserId();
            var course   = courseManager.GetCourse(courseId);
            var slide    = (ExerciseSlide)course.Slides[slideIndex];
            var isPassed = visitsRepo.IsPassed(slide.Id, userId);

            if (!isPassed)
            {
                await visitsRepo.SkipSlide(courseId, slide.Id, userId);
            }
            var solutions = solutionsRepo.GetAllAcceptedSolutions(courseId, slide.Id);

            foreach (var solution in solutions)
            {
                solution.LikedAlready      = solution.UsersWhoLike.Any(u => u == userId);
                solution.RemoveSolutionUrl = Url.Action("RemoveSolution", "Course", new { courseId = courseId, slideIndex = slide.Index, solutionId = solution.Id });
            }

            var model = new AcceptedSolutionsPageModel
            {
                CourseId          = courseId,
                CourseTitle       = course.Title,
                Slide             = slide,
                AcceptedSolutions = solutions,
                User            = User,
                LikeSolutionUrl = Url.Action("LikeSolution"),
                IsLti           = isLti,
                IsPassed        = isPassed
            };

            return(View(model));
        }