示例#1
0
        public async Task <DeleteArticleResponse> DeleteArticleAsync(DeleteArticleRequest request)
        {
            var response = new DeleteArticleResponse();

            try
            {
                var article = await this.articleRepository.GetByIdAsync(request.ArticleId);

                if (article != null)
                {
                    response.Title = article.ArticleVersions.FirstOrDefault(x => x.LanguageId == request.LanguageId)?.Title ?? article.ArticleVersions.FirstOrDefault(x => x.LanguageId == 1)?.Title;
                    this.articleRepository.Delete(article);
                    await this.unitOfWork.CommitAsync();

                    response.Status = StatusCode.OK;
                }
                else
                {
                    response.Status = StatusCode.NotFound;
                }
            }
            catch (Exception ex)
            {
                this.exceptionHandler.HandleException(ex);
                response.Status = StatusCode.InternalServerError;
            }

            return(response);
        }
示例#2
0
        public async Task DeleteArticleCommandTestAsync(string identityUserId, int articleId, DeleteArticleResponse result)
        {
            DeleteArticleCommand request = new DeleteArticleCommand
            {
                Id             = articleId,
                IdentityUserId = identityUserId,
            };
            DeleteArticleCommandHandler handler = new DeleteArticleCommandHandler(_deleteFixture.Context);
            var expectedResult = await handler.Handle(request, new CancellationToken());

            Assert.Equal(expectedResult.IsSuccessful, result.IsSuccessful);
            if (expectedResult.IsSuccessful)
            {
                Article deletedArticle = _deleteFixture.Context.Articles.Find(expectedResult.Id);
                Assert.Null(deletedArticle);
                Assert.Equal(expectedResult.ViewRole, result.ViewRole);
                Assert.Equal(expectedResult.EditRole, result.EditRole);
            }
            Assert.Equal(expectedResult.Message, result.Message);
        }
示例#3
0
        public async Task<DeleteArticleResponse> DeleteArticleAsync(DeleteArticleRequest request)
        {
            var response = new DeleteArticleResponse();

            try
            {
                var article = await this.articleRepository.GetByIdAsync(request.ArticleId);
                if (article != null)
                {
                    response.Title = article.ArticleVersions.FirstOrDefault(x => x.LanguageId == request.LanguageId)?.Title ?? article.ArticleVersions.FirstOrDefault(x => x.LanguageId == 1)?.Title;
                    this.articleRepository.Delete(article);
                    await this.unitOfWork.CommitAsync();
                    response.Status = StatusCode.OK;
                }
                else
                {
                    response.Status = StatusCode.NotFound;
                }
            }
            catch (Exception ex)
            {
                this.exceptionHandler.HandleException(ex);
                response.Status = StatusCode.InternalServerError;
            }

            return response;
        }