public IActionResult EditDraftBlogPost(string name, Guid id, [FromBody] EditDraftBlogPostRequest editDraftBlogPostRequest) { var blog = BlogRepository.GetBlog(name); if (!Exists(blog)) { return(NotFound()); } var draftBlogPost = blog.DraftBlogPosts.FirstOrDefault(dp => dp.Id == id); if (!Exists(draftBlogPost)) { return(NotFound()); } if (!draftBlogPost.CanEditDraftBlogPost(editDraftBlogPostRequest.BloggerId)) { return(Unauthorized()); } draftBlogPost.Edit(editDraftBlogPostRequest.Title, editDraftBlogPostRequest.Content); //emit event return(Ok()); }
public IActionResult GetBlog(string name) { var blog = BlogRepository.GetBlog(name); return(!Exists(blog) ? NotFound() as IActionResult : Ok(new { blogPosts = blog.BlogPosts, draftBlogPosts = blog.DraftBlogPosts })); }
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()); }