public virtual ActionResult Edit(EditViewModel model, FormCollection formCollection)
        {
            var tagcsv = "";

            if (!string.IsNullOrEmpty(formCollection["tags"]))
            {
                tagcsv = formCollection["tags"];
            }
            tagcsv = tagcsv.ToLowerInvariant(); // keep your case down bro
            var tags = TagHelper.GetTagArray(tagcsv);

            if (ModelState.IsValid)
            {
                using (var context = new WebsiteContext())
                {
                    if (!context.BlogPosts.Any(x => x.BlogPostId == model.BlogPostId))
                    {
                        return(RedirectToAction("Manage", "Blog"));
                    }

                    // make sure tags exist in database, if not, they're added
                    TagHelper.AddTagRange(tags);

                    var taglist = new List <Tag>();
                    foreach (string tag in tags)
                    {
                        var tagObject = TagHelper.GetTag(context, tag);
                        taglist.Add(tagObject);
                    }

                    var post = context.BlogPosts.First(x => x.BlogPostId == model.BlogPostId);
                    post.BlogTitle    = WebHelper.StripTags(model.BlogTitle);
                    post.BlogContent  = model.BlogContent; // WebHelper.StripTags() removed. Trust your admins.
                    post.Slug         = post.BlogTitle.Slugify();
                    post.DateModified = DateTime.Now;
                    post.Tags.Clear();
                    post.Tags.AddRange(taglist);
                    context.SaveChanges();
                }

                return(RedirectToAction("Manage", "Blog"));
            }

            ViewBag.Tags = tags;
            return(View(model));
        }
        public virtual ActionResult New(NewViewModel model, FormCollection formCollection)
        {
            if (ModelState.IsValid)
            {
                var tagcsv = "";
                if (!string.IsNullOrEmpty(formCollection["tags"]))
                {
                    tagcsv = formCollection["tags"];
                }
                tagcsv = tagcsv.ToLowerInvariant(); // keep your case down bro
                var tags = TagHelper.GetTagArray(tagcsv);

                using (var context = new WebsiteContext())
                {
                    // make sure tags exist in database, if not, they're added
                    TagHelper.AddTagRange(tags);

                    var taglist = new List <Tag>();
                    foreach (string tag in tags)
                    {
                        var tagObject = TagHelper.GetTag(context, tag);
                        taglist.Add(tagObject);
                    }

                    var post = context.BlogPosts.Create();
                    post.BlogTitle   = WebHelper.StripTags(model.BlogTitle);
                    post.BlogContent = model.BlogContent; // WebHelper.StripTags(); we should trust ourselves.
                    post.Slug        = post.BlogTitle.Slugify();
                    post.DatePosted  = DateTime.Now;
                    post.Tags.AddRange(taglist);
                    context.BlogPosts.Add(post);
                    context.SaveChanges();
                }

                return(RedirectToAction("Manage", "Blog"));
            }

            return(View(model));
        }