From 52245ffb86b6d1585c4e4c82e6bf1b3c03c8846a Mon Sep 17 00:00:00 2001 From: Michael Date: Fri, 14 Apr 2017 14:22:51 -0400 Subject: [PATCH] Bugtracker work --- Project-Unite/Controllers/BugsController.cs | 19 +++ Project-Unite/Models/BugModels.cs | 124 ++++++++++++++++++++ Project-Unite/Models/IdentityModels.cs | 2 + Project-Unite/Project-Unite.csproj | 5 + Project-Unite/Views/Bugs/Index.cshtml | 27 +++++ Project-Unite/Views/Bugs/_BugBar.cshtml | 6 + Project-Unite/Views/Bugs/_Sidebar.cshtml | 10 ++ 7 files changed, 193 insertions(+) create mode 100644 Project-Unite/Controllers/BugsController.cs create mode 100644 Project-Unite/Models/BugModels.cs create mode 100644 Project-Unite/Views/Bugs/Index.cshtml create mode 100644 Project-Unite/Views/Bugs/_BugBar.cshtml create mode 100644 Project-Unite/Views/Bugs/_Sidebar.cshtml diff --git a/Project-Unite/Controllers/BugsController.cs b/Project-Unite/Controllers/BugsController.cs new file mode 100644 index 0000000..5345239 --- /dev/null +++ b/Project-Unite/Controllers/BugsController.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.Mvc; +using Project_Unite.Models; + +namespace Project_Unite.Controllers +{ + public class BugsController : Controller + { + // GET: Bugs + public ActionResult Index() + { + var db = new ApplicationDbContext(); + return View(db.BugTags); + } + } +} \ No newline at end of file diff --git a/Project-Unite/Models/BugModels.cs b/Project-Unite/Models/BugModels.cs new file mode 100644 index 0000000..d109d2a --- /dev/null +++ b/Project-Unite/Models/BugModels.cs @@ -0,0 +1,124 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Web; +using System.Web.Mvc; + +namespace Project_Unite.Models +{ + public class Bug + { + public string Id { get; set; } + /// + /// Just a funny name for "what category is this bug in?" + /// + public string Species { get; set; } + public int Urgency { get; set; } + public string Name { get; set; } + + public ForumPost[] Comments + { + get + { + return new ApplicationDbContext().ForumPosts.Where(x => x.Parent == this.Id).ToArray(); + } + } + + public DateTime ReportedAt { get; set; } + public string ReleaseId { get; set; } + public string Reporter { get; set; } + public bool Open { get; set; } + public DateTime ClosedAt { get; set; } + public string ClosedBy { get; set; } + } + + public class BugTag + { + public string Id { get; set; } + public string Name { get; set; } + public string ColorHex { get; set; } + public string Description { get; set; } + + public Bug[] Open + { + get + { + return new ApplicationDbContext().Bugs.Where(x => x.Species == this.Id && x.Open == true).ToArray(); + } + } + } + + public class PostBugViewModel + { + [Required(AllowEmptyStrings = false, ErrorMessage ="You must specify a name for your bug.")] + [MaxLength(75, ErrorMessage = "Your bug's name must have at most 75 characters.")] + public string Name { get; set; } + + [Required(AllowEmptyStrings = false, ErrorMessage ="Please describe your bug.")] + [AllowHtml] + [MinLength(20, ErrorMessage = "Your bug's description must have at least 20 characters in it.")] + public string Description { get; set; } + + + public string SpeciesId { get; set; } + + public string VersionId { get; set; } + + public string Urgency { get; set; } + + public List Urgencies + { + get + { + var items = new List(); + string[] list = new[] { "Minor", "Moderate", "Major", "Critical" }; + for (int i = 0; i < list.Length; i++) + { + items.Add(new SelectListItem + { + Text = list[i], + Value = i.ToString() + }); + } + return items; + } + } + + public List Species + { + get + { + var db = new ApplicationDbContext(); + var items = new List(); + foreach (var itm in db.BugTags.OrderBy(x => x.Name)) + { + items.Add(new SelectListItem + { + Text = itm.Name, + Value = itm.Id + }); + } + return items; + } + } + + public List Versions + { + get + { + var db = new ApplicationDbContext(); + var items = new List(); + foreach(var itm in db.Downloads.OrderByDescending(x => x.PostDate)) + { + items.Add(new SelectListItem + { + Text = itm.Name, + Value = itm.Id + }); + } + return items; + } + } + } +} \ No newline at end of file diff --git a/Project-Unite/Models/IdentityModels.cs b/Project-Unite/Models/IdentityModels.cs index 42f9e30..f864527 100644 --- a/Project-Unite/Models/IdentityModels.cs +++ b/Project-Unite/Models/IdentityModels.cs @@ -219,6 +219,8 @@ namespace Project_Unite.Models return new ApplicationDbContext(); } + public DbSet Bugs { get; set; } + public DbSet BugTags { get; set; } public DbSet BlogPosts { get; set; } public DbSet ReadPosts { get; set; } public DbSet Downloads { get; set; } diff --git a/Project-Unite/Project-Unite.csproj b/Project-Unite/Project-Unite.csproj index cde0944..5d1c8e9 100644 --- a/Project-Unite/Project-Unite.csproj +++ b/Project-Unite/Project-Unite.csproj @@ -244,6 +244,7 @@ + @@ -426,6 +427,7 @@ + @@ -559,6 +561,9 @@ + + + diff --git a/Project-Unite/Views/Bugs/Index.cshtml b/Project-Unite/Views/Bugs/Index.cshtml new file mode 100644 index 0000000..0e7754d --- /dev/null +++ b/Project-Unite/Views/Bugs/Index.cshtml @@ -0,0 +1,27 @@ +@model IEnumerable +@{ + ViewBag.Title = "Bugtracker"; +} + +

Bugtracker

+ +@{ + Html.RenderPartial("~/Views/Bugs/_BugBar.cshtml"); +} + +
+
+@{ + Html.RenderPartial("~/Views/Bugs/_Sidebar.cshtml", Model); +} +
+ +
+

Welcome to the ShiftOS bug tracker.

+ +

ShiftOS is a game about an evolving operating system, and an evolving world. However, ShiftOS itself is evolving with new features everyday.

+ +

We at ShiftOS strive to create a stable experience and most bugs are taken care of before they ever leave the development environment. However, sometimes we make mistakes. I mean, we're all human, right? Anyways, if you find a mistake we've made in ShiftOS, this is the best spot to place it.

+ +
+
\ No newline at end of file diff --git a/Project-Unite/Views/Bugs/_BugBar.cshtml b/Project-Unite/Views/Bugs/_BugBar.cshtml new file mode 100644 index 0000000..ec3d7c2 --- /dev/null +++ b/Project-Unite/Views/Bugs/_BugBar.cshtml @@ -0,0 +1,6 @@ +@if (Request.IsAuthenticated) +{ + +} \ No newline at end of file diff --git a/Project-Unite/Views/Bugs/_Sidebar.cshtml b/Project-Unite/Views/Bugs/_Sidebar.cshtml new file mode 100644 index 0000000..36db4e8 --- /dev/null +++ b/Project-Unite/Views/Bugs/_Sidebar.cshtml @@ -0,0 +1,10 @@ +@model IEnumerable + +

Categories

+ + \ No newline at end of file