From e28195596b54360767a50be97f7976d7f8004aa3 Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 6 Apr 2017 15:08:47 -0400 Subject: "Add Wiki Page" page added.' --- .../Controllers/WikiControllerController.cs | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'Project-Unite/Controllers/WikiControllerController.cs') diff --git a/Project-Unite/Controllers/WikiControllerController.cs b/Project-Unite/Controllers/WikiControllerController.cs index b49a39e..f6b09cd 100644 --- a/Project-Unite/Controllers/WikiControllerController.cs +++ b/Project-Unite/Controllers/WikiControllerController.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; +using Microsoft.AspNet.Identity; using Project_Unite.Models; namespace Project_Unite.Controllers @@ -18,5 +19,48 @@ namespace Project_Unite.Controllers model.Page = db.WikiPages.FirstOrDefault(x => x.Id == id); return View(model); } + + [Authorize] + public ActionResult AddPage() + { + return View(new AddWikiPageViewModel()); + } + + [Authorize] + [HttpPost] + [ValidateAntiForgeryToken] + public ActionResult AddPage(AddWikiPageViewModel model) + { + if (!ModelState.IsValid) + return View(model); + + var db = new ApplicationDbContext(); + var page = new WikiPage(); + page.CategoryId = model.ParentId; + page.Contents = model.Content; + page.Name = model.Name; + + string allowed = "abcdefghijklmnopqrstuvwxyz1234567890_"; + page.Id = page.Name.ToLower(); + foreach(var c in page.Id.ToCharArray()) + { + if (!allowed.Contains(c)) + page.Id = page.Id.Replace(c, '_'); + } + + var edit = new ForumPostEdit(); + edit.Id = Guid.NewGuid().ToString(); + edit.Parent = page.Id; + edit.EditedAt = DateTime.Now; + edit.EditReason = "Page created."; + edit.PreviousState = page.Contents; + edit.UserId = User.Identity.GetUserId(); + + db.ForumPostEdits.Add(edit); + db.WikiPages.Add(page); + db.SaveChanges(); + + return RedirectToAction("Index", new { id = edit.Id }); + } } } \ No newline at end of file -- cgit v1.2.3