コード例 #1
0
        /// <inheritdoc />
        public Result UpdateBlogRewiew(BlogRewiewDto blogRewiewDto)
        {
            using var transaction = _context.Database.BeginTransaction();
            try
            {
                var review = _context.BlogReviews.Include(x => x.BlogArticle)
                             .FirstOrDefault(x => x.Id == blogRewiewDto.Id);

                var blogArticle = _context.BlogArticles.Find(blogRewiewDto.BlogArticleId);
                if (review != null)
                {
                    review.BlogArticle = blogArticle;
                    review.Author      = blogRewiewDto.Author;
                    review.DateCreate  = blogRewiewDto.DateCreate;
                    review.Rating      = blogRewiewDto.Rating;
                    review.Status      = blogRewiewDto.Status;
                    review.TextReview  = blogRewiewDto.TextReview;

                    _context.Update(review);
                    _context.SaveChanges();
                    transaction.Commit();

                    return(Result.Ok());
                }
                return(Result.Fail("Ошибка при обновлении отзыва."));
            }
            catch (Exception e)
            {
                transaction.Rollback();
                throw new ApplicationException(e.InnerException.Message ?? e.Message);
            }
        }
コード例 #2
0
        /// <inheritdoc />
        public async Task <Result> AddBlogRewiew(BlogRewiewDto blogRewiewDto)
        {
            await using var transaction = await _context.Database.BeginTransactionAsync();

            try
            {
                var blogArticle = await _context.BlogArticles.FindAsync(blogRewiewDto.BlogArticleId);

                var blogReview = new BlogReview
                {
                    BlogArticle = blogArticle,
                    Author      = blogRewiewDto.Author,
                    DateCreate  = blogRewiewDto.DateCreate,
                    Rating      = blogRewiewDto.Rating,
                    Status      = blogRewiewDto.Status,
                    TextReview  = blogRewiewDto.TextReview
                };

                await _context.AddAsync(blogReview);

                await _context.SaveChangesAsync();

                await transaction.CommitAsync();

                return(Result.Ok());
            }
            catch (Exception e)
            {
                await transaction.RollbackAsync();

                throw new ApplicationException(e.InnerException.Message ?? e.Message);
            }
        }
コード例 #3
0
        public IActionResult UpdateReview([FromForm] BlogRewiewDto rewiewDto)
        {
            var result = _blogRewiewService.UpdateBlogRewiew(rewiewDto);

            return(Ok(result));
        }
コード例 #4
0
        public async Task <IActionResult> AddArticle([FromForm] BlogRewiewDto rewiewDto)
        {
            var result = await _blogRewiewService.AddBlogRewiew(rewiewDto);

            return(Ok(result));
        }