public ActionResult Post(NewPostViewModel npvm)
        {
            if (Session["User"] == null)
            {
                return RedirectToAction("LoginPage", "Application");
            }
            else if (npvm.id != Convert.ToInt32(Session["User"]))
            {
                return RedirectToAction("LoggedInProfile");
            }
            else if (this.ModelState.IsValid)
            {
                Post p = new Post();
                Account a = db.Accounts.Find(Session["User"]);

                if (a == null)
                {
                    return RedirectToAction("LoginPage", "Application");
                }
                else
                {
                    p.account_id = a.id;
                    var sanitizer = new HtmlSanitizer();
                    if (npvm.entry == null)
                    {
                        npvm.entry = "";
                    }
                    string sanitized = sanitizer.Sanitize(npvm.entry);
                    p.entry = HttpUtility.HtmlEncode(sanitized);
                    p.date_posted = DateTime.Now;
                    foreach(LinkedItemViewModel livm in npvm.linked_items.Where(x => x.isChecked == true).ToList())
                    {
                        LinkedItem li = new LinkedItem();
                        li.item_id = livm.id;
                        li.post_id = p.id;
                        db.LinkedItems.Add(li);
                    }
                    db.Posts.Add(p);
                    db.SaveChanges();
                    return RedirectToAction("Boards", "Application");
                }
            }
            else
            {
                return RedirectToAction("Boards", "Application");
            }
        }
 public NewPostViewModel GetNewPostViewModel(object id)
 {
     NewPostViewModel npvm = new NewPostViewModel();
     npvm.id = Convert.ToInt32(id);
     npvm.linked_items = GetAllItemsAsLinkedItems();
     return npvm;
 }