コード例 #1
0
        //Calculates progress for all exercises under this lesson for the current user
        private ProgressLessonModel CalculateLessonProgress(string id)
        {
            ProgressLessonModel progressLessonModel = new ProgressLessonModel();

            using (var db = new TeachMeBackendContext())
            {
                var exercises = db.Exercises.Where(ex => ex.LessonId == id).Include(ex => ex.ExerciseStudents);
                progressLessonModel.ExercisesNumber = exercises.Count();
                if (User is ClaimsPrincipal claimsPrincipal)
                {
                    var userId = claimsPrincipal.FindFirst(ClaimTypes.PrimarySid).Value;
                    progressLessonModel.ExercisesDone =
                        exercises.Count(ex => ex.ExerciseStudents.Any(c => c.UserId == userId && c.IsDone));
                    var lessonProgress =
                        db.LessonProgresses.FirstOrDefault(p => p.UserId == userId && p.LessonId == id);
                    if (lessonProgress != null)
                    {
                        progressLessonModel.IsDone    = lessonProgress.IsDone;
                        progressLessonModel.IsStarted = lessonProgress.IsDone;
                    }
                }
            }

            return(progressLessonModel);
        }
コード例 #2
0
        public IHttpActionResult GetLessonProgress(string id)
        {
            Lesson lesson = _db.Lessons.Find(id);

            if (lesson == null)
            {
                return(NotFound());
            }

            //Calculates progress for all exercises under this lesson for the current user
            ProgressLessonModel progress = CalculateLessonProgress(id);

            return(Ok(progress));
        }
コード例 #3
0
        public IHttpActionResult GetLessonProgress(string id)
        {
            using (var db = new TeachMeBackendContext())
            {
                Lesson lesson = db.Lessons.Find(id);
                if (lesson == null)
                {
                    return(NotFound());
                }
            }

            //Calculates progress for all exercises under this lesson for the current user
            ProgressLessonModel progress = CalculateLessonProgress(id);

            return(Ok(progress));
        }