public IActionResult PublishDraftBlogPost(string name, Guid id) { var blog = BlogRepository.GetBlog(name); if (!blog.CanPublishDraftBlogPost(id)) { throw new DomainException($"Cannot publish draft blog post with id {id}"); } blog.PublishDraftBlogPost(id); return(Ok()); }
public IActionResult GetPost(string name, Guid id) { var blog = BlogRepository.GetBlog(name); if (!Exists(blog)) { return(NotFound()); } var blogPost = blog.BlogPosts.FirstOrDefault(bp => bp.Id == id); return(!Exists(blogPost) ? NotFound() as IActionResult : Ok(blogPost)); }
public IActionResult CreateDraftBlogPost(string name, [FromBody] CreateBlogPostRequest createBlogPostRequest) { var blog = BlogRepository.GetBlog(name); if (!Exists(blog)) { return(NotFound()); } var draftBlogPost = new DraftBlogPost(Guid.NewGuid(), createBlogPostRequest.Title, createBlogPostRequest.Content, createBlogPostRequest.BloggerId, DateTimeOffset.Now); blog.AddDraftBlogPost(draftBlogPost); //emit event return(Ok()); }