public ActionResult AddBlog() { var model = new AddBlogModel(); ViewBag.SelectedTab = SelectedAdminTab.Blog; return(View(model)); }
public async Task AddBlog_Return_BadRequest_NameSlug_Already_Taken() { // Arrange HttpResponseMessage expectedRespone = new HttpResponseMessage(System.Net.HttpStatusCode.BadRequest); RubiconContext db = _server.Services.GetService(typeof(RubiconContext)) as RubiconContext; Blog blog = db.Blogs.Take(1).First(); //get a random blog that is allready taken AddBlogModel addBlogModel = new AddBlogModel() { Body = "ttttt", Description = "tttt", TagList = new List <string>(), Title = blog.Title }; var Client = new RestClient("http://localhost:57595/"); var Request = new RestRequest("api/Posts").AddJsonBody(addBlogModel); //Act var response = await Client.ExecutePostAsync(Request); //Arrange Assert.Equal(expectedRespone.StatusCode, response.StatusCode); }
public async Task AddBlog_Return_Ok_With_Added_Blog() { // Arrange HttpResponseMessage expectedRespone = new HttpResponseMessage(System.Net.HttpStatusCode.OK); RubiconContext db = _server.Services.GetService(typeof(RubiconContext)) as RubiconContext; Tag tag = db.Tags.Take(1).First(); DataGeneration generator = new DataGeneration(); AddBlogModel addBlogModel = new AddBlogModel() { Body = "ttttt", Description = "tttt", TagList = new List <string>(), Title = generator.GenerateStringRandomLenght(10, 30) }; addBlogModel.TagList.Add(tag.Name); var Client = new RestClient("http://localhost:57595/"); var Request = new RestRequest("api/Posts").AddJsonBody(addBlogModel); //Act var response = await Client.ExecutePostAsync(Request); BlogModel blogsModel = new JsonDeserializer().Deserialize <BlogModel>(response); //Arrange Assert.Equal(expectedRespone.StatusCode, response.StatusCode); Assert.True(blogsModel != null); }
public ActionResult DisplayBlog(int blogID) { ViewBag.SelectedTab = SelectedAdminTab.Blog; var blogModel = new AddBlogModel(); blogModel = _blogManager.GetBlogById(blogID); return(View(blogModel)); }
private static void AddNewBlog() { Name nameGenerator = new Name(); Lorem textGenerator = new Lorem(); string blogName = textGenerator.Sentence(); string blogDescription = textGenerator.Sentences(3); AddBlogModel addBlogModel = new AddBlogModel(blogName, blogDescription); var c = factory.CreateBlogController(); c.AddBlogToUser(UserToSeed, addBlogModel); }
public async Task <BlogModel> AddBlog(AddBlogModel model) { Blog blog = mapper.Map <Blog>(model); blog.Slug = Slugefier.GetFriendlyTitle(model.Title); List <string> tagNames = model.TagList; //Make sure that the title isn't taken already var IsTaken = await db.Blogs.AsNoTracking().SingleOrDefaultAsync(x => x.Slug == blog.Slug); if (IsTaken != null) { return(null); } await db.Blogs.AddAsync(blog); await db.SaveChangesAsync(); List <BlogTag> ValidBlogTags = new List <BlogTag>(); List <Tag> Tags = await db.Tags.AsNoTracking().ToListAsync(); foreach (var tag in tagNames) { //make sure each tag exists var exsists = Tags.FirstOrDefault(x => x.Name.ToLower().Trim() == tag.ToLower().Trim()); //If it exists add it otherwise skip it if (exsists != null) { ValidBlogTags.Add(new BlogTag() { TagId = exsists.Id, BlogSlug = blog.Slug }); } } await db.BlogTags.BulkInsertAsync(ValidBlogTags); await db.BulkSaveChangesAsync(); //return the newly added blog with the updated navigation properties/tags Blog UpdatedBlog = await db.Blogs.AsNoTracking().Include(x => x.BlogTags).ThenInclude(x => x.Tag).FirstOrDefaultAsync(x => x.Slug == blog.Slug); return(mapper.Map <BlogModel>(UpdatedBlog)); }
public async Task <IActionResult> AddBlog([FromBody] AddBlogModel model) { if (!TryValidateModel(model)) { var errors = ModelState.Select(x => new { x.Key, x.Value }).ToArray(); return(BadRequest(errors)); } var result = await service.AddBlog(model); if (result == null) { return(BadRequest("Selected title already taken. Please change it to something else")); } return(Ok(result)); }
public async Task AddBlog_Return_BadRequest_BadModel() { // Arrange HttpResponseMessage expectedRespone = new HttpResponseMessage(System.Net.HttpStatusCode.BadRequest); AddBlogModel addBlogModel = new AddBlogModel() { Body = "ttttt", Description = "tttt", TagList = new List <string>(), Title = null }; var Client = new RestClient("http://localhost:57595/"); var Request = new RestRequest("api/Posts").AddJsonBody(addBlogModel); //Act var response = await Client.ExecutePostAsync(Request); //Arrange Assert.Equal(expectedRespone.StatusCode, response.StatusCode); }
public JsonResult UpdateBlogDetails(AddBlogModel model) { ViewBag.SelectedTab = SelectedAdminTab.Blog; return(Json(_blogManager.AddUpdateBlog(model), JsonRequestBehavior.AllowGet)); }
ActionOutput IBlogManager.AddUpdateBlog(AddBlogModel model) { try { if (model.ID > 0) { var blog = Context.BlogDetails.Where(z => z.ID == model.ID && z.IsDeleted != true).FirstOrDefault(); if (blog != null) { blog.Title = model.Title; if (model.Image == null) { blog.Image = model.ImageName; } else { blog.Image = Utilities.SaveImage(model.Image, AppDefaults.BlogPath, AppDefaults.BlogThumbPath); } blog.Description = model.Description; blog.UpdatedOn = DateTime.UtcNow; Context.SaveChanges(); return(new ActionOutput { Status = ActionStatus.Successfull, Message = "Sucessfully Updated." }); } else { return(new ActionOutput { Status = ActionStatus.Error, Message = "No blog found." }); } } else { if (model.Image == null) { return new ActionOutput { Status = ActionStatus.Error, Message = "Please add the Blog image." } } ; var newBlog = new BlogDetail(); newBlog.Title = model.Title; newBlog.Description = model.Description; newBlog.IsActive = model.IsActive; newBlog.AddedOn = DateTime.UtcNow; newBlog.UpdatedOn = DateTime.UtcNow; newBlog.Image = Utilities.SaveImage(model.Image, AppDefaults.BlogPath, AppDefaults.BlogThumbPath); newBlog.IsDeleted = model.IsDeleted; newBlog.IsFeaturedArticle = model.IsFeaturedArticle; Context.BlogDetails.Add(newBlog); Context.SaveChanges(); return(new ActionOutput { Status = ActionStatus.Successfull, Message = "Sucessfully Added." }); } } catch (Exception ex) { return(new ActionOutput { Status = ActionStatus.Error, Message = "Internal Server error." }); } }