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; }