public async Task <IActionResult> Create([FromForm] ArticleCreationModel model) { var result = await _articleService.CreateAsync(User.GetId(), model); if (result.Success) { return(Created($"{Contracts.V1.ApiRoutes.Articles.GetSingle.FillRouteParameters(result.Payload.Id)}", _mapper.Map <ArticleDetailsModel>(result.Payload))); } return(BadRequest()); }
public async Task <RequestWithPayloadResult <Article> > CreateAsync(string authorId, ArticleCreationModel articleModel) { var article = new Article { CreationDate = DateTime.UtcNow, LastUpdatedDate = null, Title = articleModel.Title, Body = articleModel.Body, Description = articleModel.Description, AuthorId = authorId }; if (articleModel.Tags != null) { var tagsFromDatabase = await _tagService.CreateRangeAsync(articleModel.Tags.Split(",")); AttachArticleTags(article, tagsFromDatabase); } if (articleModel.FeaturedImage != null) { article.FeaturedImage = await ImageUtilities.ProcessUploadedFile(articleModel.FeaturedImage, _imageSettings.FeaturedImage.Location, _imageSettings.FeaturedImage.Format, _imageSettings.FeaturedImage.Width, _imageSettings.FeaturedImage.Height); } await _context.Articles.AddAsync(article); var savedSuccesfully = await _context.SaveChangesAsync() > 0; article = await GetAsync(article.Id); if (savedSuccesfully) { return(new RequestWithPayloadResult <Article> { Success = savedSuccesfully, Payload = article }); } return(new RequestWithPayloadResult <Article>()); }