public async Task <ActionResult <BlogView> > Update(long id, [FromBody] BlogCreateView create) { var blog = await Context.Blogs .Include(b => b.Owner) .FirstOrDefaultAsync(b => b.Id == id); if (blog == null) { return(NotFound()); } var authResult = await _authorizationService .AuthorizeAsync(User, blog, Operations.Update); if (!authResult.Succeeded) { return(Unauthorized()); } blog.Title = create.Title; blog.About = create.About; await Context.SaveChangesAsync(); return(new BlogView(blog)); }
public CreateBlogSteps(BlogListView blogListView, LoginView loginView, BlogCreateView blogCreateView, HomeView homeView) { _blogCreateView = blogCreateView; _blogListView = blogListView; _loginView = loginView; _homeView = homeView; }
public async Task TestBlog() { const string title = "Dev blogger"; const string about = "A blog about development"; const string title2 = "new title"; const string about2 = "new about"; //Create blog for user var create = new BlogCreateView { About = about, Title = title }; var newBlogData = await Post <BlogCreateView, BlogView>(_userClient, "/Blog", create); Assert.AreEqual(newBlogData.Title, title); Assert.AreEqual(newBlogData.About, about); var blogData = await Get <BlogView>(_userClient, $"api/Blog/{newBlogData.Id}"); Assert.AreEqual(newBlogData.Id, blogData.Id); //Update blog var update = new BlogCreateView { About = about2, Title = title2 }; var id = newBlogData.Id; newBlogData = await Put <BlogCreateView, BlogView>(_userClient, $"api/Blog/{id}", update); Assert.AreEqual(id, newBlogData.Id); Assert.AreEqual(title2, newBlogData.Title); Assert.AreEqual(about2, newBlogData.About); //Unauthorized Update blog using (var resp = await _adminClient.PutAsync($"api/Blog/{newBlogData.Id}", JsonContent(update))) { Assert.AreEqual(HttpStatusCode.Unauthorized, resp.StatusCode); } //Delete Blog using (var resp = await _userClient.DeleteAsync($"api/Blog/{newBlogData.Id}")) { Assert.AreEqual(HttpStatusCode.OK, resp.StatusCode); } }
public async Task <ActionResult <BlogView> > Create([FromBody] BlogCreateView create) { var owner = await CurrentUser(); var blog = new Blog { Owner = owner, About = create.About, Title = create.Title }; Context.Blogs.Add(blog); await Context.SaveChangesAsync(); return(Ok(new BlogView(blog))); }