summaryrefslogtreecommitdiff
path: root/Project-Unite/Models/WikiModels.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Project-Unite/Models/WikiModels.cs')
-rw-r--r--Project-Unite/Models/WikiModels.cs69
1 files changed, 69 insertions, 0 deletions
diff --git a/Project-Unite/Models/WikiModels.cs b/Project-Unite/Models/WikiModels.cs
new file mode 100644
index 0000000..ac6c6cb
--- /dev/null
+++ b/Project-Unite/Models/WikiModels.cs
@@ -0,0 +1,69 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+
+namespace Project_Unite.Models
+{
+ public class WikiCategory
+ {
+ public string Id { get; set; }
+ public string Name { get; set; }
+ public string Parent { get; set; }
+
+ public WikiCategory[] Children
+ {
+ get
+ {
+ var db = new ApplicationDbContext();
+
+ return db.WikiCategories.Where(x => x.Parent == this.Id).ToArray();
+ }
+ }
+
+ public WikiPage[] Pages
+ {
+ get
+ {
+ var db = new ApplicationDbContext();
+
+ return db.WikiPages.Where(w => w.CategoryId == this.Id).ToArray();
+ }
+ }
+ }
+
+ public class WikiViewModel
+ {
+ public IEnumerable<WikiCategory> Categories { get; set; }
+ public WikiPage Page { get; set; }
+ }
+
+ public class WikiPage
+ {
+ public string Id { get; set; }
+ public string Name { get; set; }
+ public string CategoryId { get; set; }
+
+ //I stole this feature from wikipedia lol. I like the idea of disambiguation of multiple pages with the same name.
+ public WikiPage[] AmbiguousReferences
+ {
+ get
+ {
+ var db = new ApplicationDbContext();
+
+ return db.WikiPages.Where(w => w.Id != this.Id && w.Name.ToLower().Contains(this.Name.ToLower())).ToArray();
+ }
+ }
+
+ public string Contents { get; set; }
+
+ public ForumPostEdit[] EditHistory
+ {
+ get
+ {
+ var db = new ApplicationDbContext();
+ return db.ForumPostEdits.Where(x => x.Parent == this.Id).ToArray();
+ }
+ }
+ }
+} \ No newline at end of file