public ActionResult Create([Bind(Include = "Id,Created,Updated,Title,Body,MediaUrl,Published,Slug")] CliffBlogPost cliffBlogPosts, HttpPostedFileBase image) { if (ModelState.IsValid) { var Slug = StringUtilities.URLFriendly(cliffBlogPosts.Title); if (String.IsNullOrWhiteSpace(Slug)) { ModelState.AddModelError("Title", "Invalid title"); return(View(cliffBlogPosts)); } if (db.Posts.Any(p => p.Slug == Slug)) { ModelState.AddModelError("Title", "The title must be unique"); return(View(cliffBlogPosts)); } if (ImageUploadValidator.IsWebFriendlyImage(image)) { var fileName = Path.GetFileName(image.FileName); //clicked light bulb for using System.IO; image.SaveAs(Path.Combine(Server.MapPath("~/Uploads/"), fileName)); //clicked light bulb for using System.IO; cliffBlogPosts.MediaURL = "/Uploads/" + fileName; //change URL to Url?? } cliffBlogPosts.Slug = Slug; cliffBlogPosts.Created = DateTime.Now; db.Posts.Add(cliffBlogPosts); //db.Posts.Add(image); // do I need this line? I added, seems like I do but get squiggles under image db.SaveChanges(); return(RedirectToAction("Index")); } return(View(cliffBlogPosts)); }
public ActionResult DeleteConfirmed(int id) { CliffBlogPost cliffBlogPosts = db.Posts.Find(id); //.FirstOrDefault (finds first of whatever name or number searching for, see PowerPoint) rather than .Find if we don't have id. delete all records with string or id, use .Where db.Posts.Remove(cliffBlogPosts); db.SaveChanges(); return(RedirectToAction("Index")); }
//var listPosts = db.Posts.AsQueryable(); //thought i needed db.CliffBlogPosts not db.Posts...see IdentityModels...set database value of a blog post to Posts --- public DbSet<CliffBlogPost> Posts { get; set; } //listPosts = listPosts.Where(p => p.Title.Contains(searchStr)) || // p.Body.Contains(searchStr) || // p.Comments.Any(c => c.Body.Contains(searchStr) || // c.Author.FirstName.Contains(searchStr) || // c.Author.DisplayName.Contains(searchStr) || // c.Author.LastName.Contains(searchStr) || // c.Email.Contains(searchStr) || // c.UpdateReason.Contains(searchStr)); //Also, when search then click on blog post from search, go to details, should I put a back to search button/text link? same as back to list/index // GET: CliffBlogPosts/Details/5 public ActionResult Details(string Slug) { if (String.IsNullOrWhiteSpace(Slug)) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } CliffBlogPost cliffBlogPosts = db.Posts.FirstOrDefault(p => p.Slug == Slug); if (cliffBlogPosts == null) { return(HttpNotFound()); } return(View(cliffBlogPosts)); }
// GET: CliffBlogPosts/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } CliffBlogPost cliffBlogPosts = db.Posts.Find(id); if (cliffBlogPosts == null) { return(HttpNotFound()); } return(View(cliffBlogPosts)); }
public ActionResult Edit([Bind(Include = "Id,Created,Updated,Title,Body,MediaUrl,Published,Slug")] CliffBlogPost cliffBlogPosts, HttpPostedFileBase image) { if (ModelState.IsValid) { if (ImageUploadValidator.IsWebFriendlyImage(image)) { var fileName = Path.GetFileName(image.FileName); //clicked light bulb for using System.IO; image.SaveAs(Path.Combine(Server.MapPath("~/Uploads/"), fileName)); //clicked light bulb for using System.IO; cliffBlogPosts.MediaURL = "/Uploads/" + fileName; } //change URL to Url db.Entry(cliffBlogPosts).State = EntityState.Modified; cliffBlogPosts.Updated = DateTime.Now; //db.Posts.Add(image); // do I need this line? I added, seems like I do but get squiggles under image db.SaveChanges(); return(RedirectToAction("Index")); } return(View(cliffBlogPosts)); }