Example #1
0
        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));
        }
Example #2
0
        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"));
        }
Example #3
0
        //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));
        }
Example #4
0
        // 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));
        }
Example #5
0
        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));
        }