Пример #1
0
        public async Task <bool> UpdateEpisodeReview(EpisodeReview episodeReview, EpisodeReviewManipulationDto updateDto)
        {
            using (var trans = _context.Database.BeginTransaction(_capPublisher, autoCommit: false))
            {
                try
                {
                    _mapper.Map(updateDto, episodeReview);
                    await _context.SaveChangesAsync();

                    var reviewEvent = _mapper.Map <EpisodeReviewUpdatedEvent>(episodeReview);
                    await _capPublisher.SendEvent(EventInfo.EpisodeReviewUpdated, reviewEvent);

                    await trans.CommitAsync();

                    return(true);
                }
                catch (Exception e)
                {
                    await trans.RollbackAsync();

                    _logger.LogError(e, $"Unexpected error while updating episode review" +
                                     $" EpisodeId: {episodeReview.EpisodeId} UserId:{episodeReview.ReviewerId}");
                    return(false);
                }
            }
        }
Пример #2
0
        public async Task <ActionResult> ReviewEpisode(int episodeId, EpisodeReviewManipulationDto reviewDto)
        {
            var userId  = _requestContext.UserId;
            var episode = await _reviewService.GetEpisode(episodeId);

            if (episode is Episode)
            {
                var episodeReview = await _reviewService.GetEpisodeReview(episodeId, userId);

                if (episodeReview is EpisodeReview)
                {
                    var reviewUpdateSuccess = await _reviewService.UpdateEpisodeReview(episodeReview, reviewDto);

                    if (reviewUpdateSuccess)
                    {
                        return(NoContent());
                    }
                    return(BadRequest("Unexpected error while saving episode review"));
                }
                else
                {
                    var reviewCreatedSuccess = await _reviewService.CreateEpisodeReview(episodeId, userId, reviewDto);

                    if (reviewCreatedSuccess)
                    {
                        return(NoContent());
                    }
                    return(BadRequest("Unexpected error while saving episode review"));
                }
            }
            else
            {
                return(NotFound());
            }
        }