예제 #1
0
        public virtual async Task <bool> IsApprovedCourse(Course course, Customer customer)
        {
            var lessons = await _courseLessonService.GetByCourseId(course.Id);

            foreach (var item in lessons.Where(x => x.Published))
            {
                if (!await _courseActionService.CustomerLessonCompleted(customer.Id, item.Id))
                {
                    return(false);
                }
            }
            return(true);
        }
예제 #2
0
        public virtual async Task <CourseModel> PrepareCourseModel(Course course)
        {
            var model = course.ToModel(_workContext.WorkingLanguage);

            model.Level = (await _courseLevelService.GetById(course.LevelId))?.Name;

            var pictureSize = _mediaSettings.CourseThumbPictureSize;
            var picture     = await _pictureService.GetPictureById(course.PictureId);

            model.PictureUrl = await _pictureService.GetPictureUrl(picture, pictureSize);

            var subjects = await _courseSubjectService.GetByCourseId(course.Id);

            foreach (var item in subjects)
            {
                model.Subjects.Add(new CourseModel.Subject()
                {
                    Id           = item.Id,
                    Name         = item.Name,
                    DisplayOrder = item.DisplayOrder
                });
            }

            var lessonPictureSize = _mediaSettings.LessonThumbPictureSize;
            var lessons           = await _courseLessonService.GetByCourseId(course.Id);

            foreach (var item in lessons.Where(x => x.Published))
            {
                var lessonPicture = await _pictureService.GetPictureById(item.PictureId);

                var pictureUrl = await _pictureService.GetPictureUrl(lessonPicture, lessonPictureSize);

                var approved = await _courseActionService.CustomerLessonCompleted(_workContext.CurrentCustomer.Id, item.Id);

                model.Lessons.Add(new CourseModel.Lesson()
                {
                    Id               = item.Id,
                    SubjectId        = item.SubjectId,
                    Name             = item.Name,
                    ShortDescription = item.ShortDescription,
                    DisplayOrder     = item.DisplayOrder,
                    PictureUrl       = pictureUrl,
                    Approved         = approved
                });
            }
            model.Approved = !model.Lessons.Any(x => !x.Approved);
            return(model);
        }
예제 #3
0
        public async Task <CourseModel> Handle(GetCourse request, CancellationToken cancellationToken)
        {
            var model = request.Course.ToModel(request.Language);

            model.Level = (await _courseLevelService.GetById(request.Course.LevelId))?.Name;

            model.PictureUrl = await _pictureService.GetPictureUrl(request.Course.PictureId, _mediaSettings.CourseThumbPictureSize);

            var subjects = await _courseSubjectService.GetByCourseId(request.Course.Id);

            foreach (var item in subjects)
            {
                model.Subjects.Add(new CourseModel.Subject()
                {
                    Id           = item.Id,
                    Name         = item.Name,
                    DisplayOrder = item.DisplayOrder
                });
            }
            var lessons = await _courseLessonService.GetByCourseId(request.Course.Id);

            foreach (var item in lessons.Where(x => x.Published))
            {
                var pictureUrl = await _pictureService.GetPictureUrl(item.PictureId, _mediaSettings.LessonThumbPictureSize);

                var approved = await _courseActionService.CustomerLessonCompleted(request.Customer.Id, item.Id);

                model.Lessons.Add(new CourseModel.Lesson()
                {
                    Id               = item.Id,
                    SubjectId        = item.SubjectId,
                    Name             = item.Name,
                    ShortDescription = item.ShortDescription,
                    DisplayOrder     = item.DisplayOrder,
                    PictureUrl       = pictureUrl,
                    Approved         = approved
                });
            }
            model.Approved = !model.Lessons.Any(x => !x.Approved);
            return(model);
        }
        public async Task <LessonModel> Handle(GetLesson request, CancellationToken cancellationToken)
        {
            var model = new LessonModel();

            var modelCourse = request.Course.ToModel(request.Language);

            model.Id                = request.Lesson.Id;
            model.CourseId          = modelCourse.Id;
            model.CourseDescription = modelCourse.Description;
            model.CourseName        = modelCourse.Name;
            model.CourseSeName      = modelCourse.SeName;
            model.MetaDescription   = modelCourse.MetaDescription;
            model.MetaKeywords      = model.MetaKeywords;
            model.MetaTitle         = model.MetaTitle;
            model.Name              = request.Lesson.Name;
            model.ShortDescription  = request.Lesson.ShortDescription;
            model.Description       = request.Lesson.Description;
            model.GenericAttributes = request.Lesson.GenericAttributes;
            model.CourseLevel       = (await _courseLevelService.GetById(request.Course.LevelId))?.Name;

            //prepare picture
            model.PictureUrl = await _pictureService.GetPictureUrl(request.Lesson.PictureId);

            model.Approved = await _courseActionService.CustomerLessonCompleted(request.Customer.Id, request.Lesson.Id);

            if (!string.IsNullOrEmpty(request.Lesson.AttachmentId))
            {
                model.DownloadFile = true;
            }

            if (!string.IsNullOrEmpty(request.Lesson.VideoFile))
            {
                model.VideoFile = true;
            }

            return(model);
        }