Beispiel #1
0
        public async Task <CourseRatingDTO> Edit(CourseRatingDTO dto)
        {
            dto.UserId = Session.UserId;
            var courseRating = dto.MapTo <TCourseRating>();
            await courseRatingRepository.Edit(courseRating, Session);

            return(courseRating.MapTo <CourseRatingDTO>());
        }
Beispiel #2
0
        public async Task <IActionResult> RateAsync([FromBody] CourseRatingDTO ratingDTO)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var result = await _service.RateAsync(ratingDTO);

            return(Ok(result));
        }
Beispiel #3
0
        public async Task <IActionResult> PutCourseRating(CourseRatingDTO courseRatingDto)
        {
            var courseRating = await courseRatingService.Edit(courseRatingDto);

            if (courseRating == null)
            {
                return(BadRequest());
            }

            return(Ok(courseRating));
        }
Beispiel #4
0
        public async Task <ActionResult <CourseRatingDTO> > PostCourseRating(CourseRatingDTO courseRatingDto)
        {
            var courseRating = await courseRatingService.Edit(courseRatingDto);

            if (courseRating == null)
            {
                return(BadRequest());
            }

            var courseUpdated = await courseRatingService.UpdateCourse(courseRating.CourseId);

            return(Ok(courseRating));
        }
Beispiel #5
0
        public async Task <int> RateAsync(CourseRatingDTO ratingDTO)
        {
            var task = _mapper.Map <CourseRating>(ratingDTO);

            if (await _repository.isRatedAlready(ratingDTO.CourseId, ratingDTO.UserId))
            {
                var actualRate = await _repository.GetActualRatingAsync(ratingDTO.CourseId, ratingDTO.UserId);

                actualRate.Points = ratingDTO.Points;
                await _repository.UpdateRatingAsync(actualRate);

                return(actualRate.Id);
            }
            else
            {
                await _repository.RateAsync(task);

                return(task.Id);
            }
        }