Пример #1
0
        public async Task <IActionResult> UpdateCourseReview(int courseId, [FromBody] CourseReviewUpdateRequestDto request)
        {
            try
            {
                var result = await _courseReviewServices.UpdateCourseReviewForCurrentUserAsync(courseId, request);

                return(Ok(result));
            }
            catch (CourseReviewException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch (BadRequestException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch (NotFoundException ex)
            {
                return(NotFound(ex.Message));
            }
            catch (Exception ex)
            {
                _logger.LogCritical($"UpdateCourseReview() Error: {ex}");
                return(StatusCode(500, "Internal Server Error"));
            }
        }
Пример #2
0
        public async Task <CourseReviewDto> UpdateCourseReviewForCurrentUserAsync(int courseId, CourseReviewUpdateRequestDto request)
        {
            // 1. check user and course
            var user = await GetCurrentUser();

            var course = await _courseRepository.GetCourseAsync(courseId);

            if (course == null)
            {
                throw new NotFoundException("Course not found");
            }
            //2. update course rating
            var review = await _courseReviewRepository.GetCourseReviewByCourseIdAndUserIdAsync(user.Id, courseId);

            review.Update(user, request.Comment, request.Score);
            await _courseReviewRepository.SaveAsync();

            return(Mapper.Map <CourseReviewDto>(review));
        }