Exemple #1
0
        public void SameTitle_Should_Not_Create_New(CreateUpdateArticleInput input)
        {
            _repository.FirstOrDefaultAsync(Arg.Any <Expression <Func <Article, bool> > >()).Returns(Task.FromResult(new Article {
                Title = input.Title
            }));
            var exception = Should.Throw <HttpResponseException>(async() => await _manager.CreateAsync(input));

            exception.Response.StatusCode.ShouldBe(HttpStatusCode.BadRequest);
            exception.Response.ReasonPhrase?.ShouldContain("title is already Existed");
        }
Exemple #2
0
        public async Task Should_Create_New(CreateUpdateArticleInput input)
        {
            _repository.FirstOrDefaultAsync(Arg.Any <Expression <Func <Article, bool> > >()).Returns(Task.FromResult <Article>(null));
            var article = await _manager.CreateAsync(input);

            article.Title.ShouldBe(input.Title);
            article.CategoryId.ShouldBe(input.CategoryId);
            article.Content.ShouldBe(input.Content);
            article.Cover.ShouldBe(input.Cover);
            article.Description.ShouldBe(input.Description);
        }
Exemple #3
0
        public async Task <StandardOutput <ArticleDto> > UpdateArticle(CreateUpdateArticleInput input)
        {
            var responseMessage = await _articleProvider.UpdateArticle(input);

            return(responseMessage.StateCode != Define.StateCode.OK
                ? new StandardOutput <ArticleDto>
            {
                Entity = null,
                Message = $"UpdateArticle failed. Reason: {responseMessage.ErrorMessage}"
            }
                : new StandardOutput <ArticleDto> {
                Entity = responseMessage.Entity, Message = "UpdateArticle succeed"
            });
        }
Exemple #4
0
        public async Task <Article> CreateAsync(CreateUpdateArticleInput input)
        {
            //todo use auto mapper
            var article = new Article
            {
                Content     = input.Content,
                CategoryId  = input.CategoryId,
                IsPublished = input.IsPublished,
                Description = input.Description,
                Cover       = input.Cover
            };

            await SetTitle(article, input.Title);

            return(article);
        }
        public async Task <ArticleDto> CreateOrUpdateArticle(CreateUpdateArticleInput input)
        {
            if (input.CategoryId <= 0)
            {
                throw ExceptionBuilder.Build(HttpStatusCode.BadRequest, new HttpException("category not exist"));
            }
            if (input.Id > 0)
            {
                return(await UpdateArticle(input.Id, input));
            }

            var article = await _articleManager.CreateAsync(input);

            var createdArticle = await _articleRepository.CreateAsync(article);

            return(_mapper.Map <Article, ArticleDto>(createdArticle));
        }
        public async Task <ArticleDto> UpdateArticle(int id, CreateUpdateArticleInput input)
        {
            if (input.CategoryId <= 0)
            {
                throw ExceptionBuilder.Build(HttpStatusCode.BadRequest, new HttpException("category not exist"));
            }
            var article = await _articleRepository.FindAsync(id);

            if (article == null)
            {
                throw ExceptionBuilder.Build(HttpStatusCode.NotFound, new HttpException($"Id: {id} not match any article"));
            }
            _mapper.Map(input, article);
            if (input.Title != article.Title)
            {
                await _articleManager.SetTitle(article, input.Title);
            }
            article.EditTime = DateTime.Now;
            var updateArticle = await _articleRepository.UpdateAsync(article.Id, article);

            return(_mapper.Map <Article, ArticleDto>(updateArticle));
        }
Exemple #7
0
 public async Task <ResponseMessage <ArticleDto> > UpdateArticle(CreateUpdateArticleInput input)
 {
     return(await SendNeedDeserializedRequest <ArticleDto, CreateUpdateArticleInput>(
                $"{Define.ProviderRoutes.ArticleRoute.Article}/{Define.ProviderRoutes.ArticleRoute.UpdateContent}", _http.PutAsJsonAsync, input));
 }
Exemple #8
0
 public async Task <ArticleDto> UpdateContent(CreateUpdateArticleInput input)
 {
     return(await _articleAppService.UpdateArticle(input.Id, input));
 }
Exemple #9
0
 public async Task <ArticleDto> CreateOrUpdateArticle(CreateUpdateArticleInput input)
 {
     return(await _articleAppService.CreateOrUpdateArticle(input));
 }