public IActionResult CreatePost([FromBody] BlogPostForCreationDto blogPost) { try { if (blogPost == null) { _logger.LogError("BlogPost object sent from client is null."); return(BadRequest("BlogPost object is null")); } if (!ModelState.IsValid) { _logger.LogError("Invalid blogpost object sent from client."); return(BadRequest("Invalid model object")); } var blogPostEntity = blogPost.ToEntity <BlogPost>(); blogPostEntity.CreatedOnUtc = DateTime.UtcNow; _blogService.InsertBlogPost(blogPostEntity); var blogPostDto = new BlogPostDto(); _blogFactory.PrepareBlogPostResponse(blogPostDto, blogPostEntity, false); return(CreatedAtRoute("PostById", new { id = blogPostDto.Id }, blogPostDto)); } catch (Exception ex) { var logMessage = $"BlogController PostCreate Method. Something went wrong. Request : { JsonConvert.SerializeObject(blogPost) } Ex Message : { ex.Message }"; _logger.LogError(ex, logMessage); return(StatusCode(500, "Internal server error")); } }
public IActionResult CreateBlogPost( [FromBody] BlogPostForCreationDto blogPost) { if (blogPost == null) { _logger.LogWarning("Create BlogPost has null blogPost argument"); return(BadRequest()); } if (blogPost.Contents == blogPost.Title) { ModelState.AddModelError("Contents", "The provided contents should be different from the title."); _logger.LogWarning("Create BlogPost has Title=Contents"); } if (!ModelState.IsValid) { _logger.LogWarning("Create BlogPost has modelState invalid"); return(BadRequest(ModelState)); } // create blog post var finalPost = Mapper.Map <Entities.BlogPost>(blogPost); _blogInfoRepository.AddBlogPost(finalPost); _logger.LogWarning($"New Blog Post added: {finalPost.Id}"); try { if (!_blogInfoRepository.Save()) { _logger.LogWarning("Save failed"); return(StatusCode(500, "A problem happened while handling your request.")); } var createdBlogPostToReturn = Mapper.Map <Models.BlogPostDto>(finalPost); _logger.LogInformation($"Blog Post {createdBlogPostToReturn.Id} was saved"); return(CreatedAtRoute("GetPost", new { id = createdBlogPostToReturn.Id }, createdBlogPostToReturn)); } catch (Exception e) { _logger.LogError($"Issue in save: {e}"); return(StatusCode(500, "A problem happened while handling your request.")); } }