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"); }
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); }
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" }); }
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)); }
public async Task <ResponseMessage <ArticleDto> > UpdateArticle(CreateUpdateArticleInput input) { return(await SendNeedDeserializedRequest <ArticleDto, CreateUpdateArticleInput>( $"{Define.ProviderRoutes.ArticleRoute.Article}/{Define.ProviderRoutes.ArticleRoute.UpdateContent}", _http.PutAsJsonAsync, input)); }
public async Task <ArticleDto> UpdateContent(CreateUpdateArticleInput input) { return(await _articleAppService.UpdateArticle(input.Id, input)); }
public async Task <ArticleDto> CreateOrUpdateArticle(CreateUpdateArticleInput input) { return(await _articleAppService.CreateOrUpdateArticle(input)); }