public async Task UpdateBlog_Return_Ok_Return_UpdatedBlog() { // Arrange HttpResponseMessage expectedRespone = new HttpResponseMessage(System.Net.HttpStatusCode.OK); RubiconContext db = _server.Services.GetService(typeof(RubiconContext)) as RubiconContext; Blog blog = db.Blogs.Take(1).First();//get a random blog that is allready taken DataGeneration data = new DataGeneration(); UpdateBlogModel addBlogModel = new UpdateBlogModel() { Slug = blog.Slug, Body = data.GenerateStringRandomLenght(10, 30), Description = data.GenerateStringRandomLenght(10, 30), Title = data.GenerateStringRandomLenght(10, 30) }; var Client = new RestClient("http://localhost:57595/"); var Request = new RestRequest("api/Posts", Method.PUT).AddJsonBody(addBlogModel); //Act var response = await Client.ExecuteAsync(Request); BlogModel blogModel = new JsonDeserializer().Deserialize <BlogModel>(response); //Arrange Assert.Equal(expectedRespone.StatusCode, response.StatusCode); Assert.True(blogModel != null); }
public static Blog ToModel(this UpdateBlogModel blog) { return(new Blog() { Id = blog.Id, Title = blog.Title, Author = blog.Author, TravelDate = blog.TravelDate, ImageURL = blog.ImageURL, ShortDescription = blog.ShortDescription, Text = blog.Text }); }
public IActionResult Update(int id, [FromBody] UpdateBlogModel model) { var blog = _mapper.Map <Blog>(model); blog.Id = id; try { _blogService.Update(blog); return(Ok()); } catch (Helpers.AppException ex) { return(BadRequest(new { message = ex.Message })); } }
public async Task <BlogModel> UpdateBlog(UpdateBlogModel model) { Blog exists = await db.Blogs.AsNoTracking().SingleOrDefaultAsync(x => x.Slug == model.Slug); if (exists == null) { return(null); } if (model.Body != null) { exists.Body = model.Body; } if (model.Description != null) { exists.Description = model.Description; } if (model.Title != null) { //make sure that the new title/slug isn't taken var newSlug = Slugefier.GetFriendlyTitle(model.Title); var taken = await db.Blogs.AsNoTracking().SingleOrDefaultAsync(x => x.Slug == newSlug); if (taken != null)//id its taken return null so we can send BadRequest response { return(null); } exists.Title = model.Title; exists.Slug = Slugefier.GetFriendlyTitle(model.Title); } exists.UpdatedAt = DateTime.UtcNow;//update edit time await db.Blogs.SingleUpdateAsync(exists); await db.SaveChangesAsync(); return(mapper.Map <BlogModel>(exists)); }
public async Task <IActionResult> UpdateBlog([FromBody] UpdateBlogModel model) { //Make sure we have something to update if (model.Body == null && model.Description == null && model.Title == null) { return(BadRequest("Nothing to update!")); } var result = await service.UpdateBlog(model); if (result == null) { BadRequest("Selected title is already taken"); } return(Ok(result)); }
public async Task UpdateBlog_Return_BadRequest_BadModel() { // Arrange HttpResponseMessage expectedRespone = new HttpResponseMessage(System.Net.HttpStatusCode.BadRequest); UpdateBlogModel addBlogModel = new UpdateBlogModel() { Body = null, Description = null, Title = null }; var Client = new RestClient("http://localhost:57595/"); var Request = new RestRequest("api/Posts", Method.PUT).AddJsonBody(addBlogModel); //Act var response = await Client.ExecuteAsync(Request); //Arrange Assert.Equal(expectedRespone.StatusCode, response.StatusCode); }
public IActionResult Update(UpdateBlogModel blogModel) { try { if (ModelState.IsValid) { var response = _service.Update(blogModel.ToModel()); if (response.Success) { return(RedirectToAction("ManageOverview", new { SuccessMessage = response.Message })); } else { return(RedirectToAction("ManageOverview", new { ErrorMessage = response.Message })); } } return(View(blogModel)); } catch (Exception) { return(RedirectToAction("ErrorNotFound", "Info")); } }