コード例 #1
0
        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);
        }
コード例 #2
0
 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
     });
 }
コード例 #3
0
ファイル: BlogsController.cs プロジェクト: ausmoons/Blog
        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 }));
            }
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        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));
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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"));
            }
        }