diff options
Diffstat (limited to 'Project-Unite/Models/WikiModels.cs')
| -rw-r--r-- | Project-Unite/Models/WikiModels.cs | 69 |
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 |
