// GET: Projects for a User public ActionResult UserProjectsOnly() { var userID = User.Identity.GetUserId(); //pass in userId, check their role, and then show them relevant projects. //admin and PM see all projects var projs = db.Projects.ToList(); List <ProjectPMViewModel> model = new List <ProjectPMViewModel>(); foreach (var p in projs) { ProjectsHelper Phelper = new ProjectsHelper(); if (Phelper.IsUserOnProject(userID, p.Id)) { ProjectPMViewModel vm = new ProjectPMViewModel(); vm.Project = p; //this works because the PMID is just the User.Id, which is the primary key of Users //this code adds the user vm.ProjectManager = p.PMID != null?db.Users.Find(p.PMID) : null; model.Add(vm); } } return(View(model)); }
public ActionResult Create([Bind(Include = "Id,Title,Description,Created,Updated,ProjectId,TicketStatusId,TicketPriorityId,TicketTypeId,OwnerUserId,AssignedToUserId")] Ticket ticket) { if (ModelState.IsValid) { //add user to project when they create a ticket ProjectsHelper phelper = new ProjectsHelper(); if (!phelper.IsUserOnProject(User.Identity.GetUserId(), ticket.ProjectId)) { phelper.AddUserToProject(User.Identity.GetUserId(), ticket.ProjectId); } ticket.OwnerUserId = User.Identity.GetUserId(); ticket.TicketPriorityId = db.TicketPrioritys.FirstOrDefault(n => n.Name == "Low").Id; //Give ticket initial status of "new" ticket.TicketStatusId = 2; ticket.Created = DateTimeOffset.Now; db.Tickets.Add(ticket); db.SaveChanges(); return(RedirectToAction("Details", "Projects", new { id = ticket.ProjectId })); } //Identity framework chooses the name of the database, which is "Users", but the actual class name is "ApplicationUser" ViewBag.AssignedToUserId = new SelectList(db.Users, "Id", "FirstName", ticket.AssignedToUserId); ViewBag.OwnerUserId = new SelectList(db.Users, "Id", "FirstName", ticket.OwnerUserId); ViewBag.ProjectId = new SelectList(db.Projects, "Id", "Name", ticket.ProjectId); ViewBag.TicketPriorityId = new SelectList(db.TicketPrioritys, "Id", "Name", ticket.TicketPriorityId); ViewBag.TicketStatusId = new SelectList(db.TicketStatus, "Id", "Name", ticket.TicketStatusId); ViewBag.TicketTypeId = new SelectList(db.TicketTypes, "Id", "Name", ticket.TicketTypeId); return(View(ticket)); }
public ActionResult DevProjIndex() { //find the id of the current user string devUserId = User.Identity.GetUserId(); TicketIndexViewModel model = new TicketIndexViewModel(); //use roles helper to check for the roles ProjectsHelper phelper = new ProjectsHelper(); //user ProjectsHelper to get a list of projects the dev is on. List <Project> devProjects = phelper.ListUserProjects(devUserId).ToList(); //use linq with selectmany to get all tickets on each project. if (devProjects.Count() == 0) { return(RedirectToAction("Index")); } var devProjTickets = devProjects.SelectMany(t => t.Tickets).AsQueryable(); { var tickets = devProjTickets.Include(t => t.AssignedToUser) .Include(t => t.OwnerUser) .Include(t => t.Project) .Include(t => t.TicketPriority) .Include(t => t.TicketStatus) .Include(t => t.TicketType); //tickets = tickets.Where(t => t.Project.Id == phelper.ListUserProjects(devUserId).id; model.DevTickets = tickets.ToList(); } return(View(model)); }
// GET: Projects/Details/5 public ActionResult Details(int?id) { ProjectDetailViewModel vm = new ProjectDetailViewModel(); //AdminProjectViewModel vm = new AdminProjectViewModel(); UserRolesHelper helper = new UserRolesHelper(); ProjectsHelper phelper = new ProjectsHelper(); var pSub = phelper.ProjectUsersByRole(id.Value, "Submitter"); var pDev = phelper.ProjectUsersByRole(id.Value, "Developer"); var pms = helper.UsersInRole("ProjectManager"); vm.PMUsers = new SelectList(pms, "Id", "FirstName"); vm.TeamMembers = new SelectList(db.Users, "Id", "FullName"); vm.Developers = pDev; vm.Submitters = pSub; vm.Project = db.Projects.Find(id); if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } //Project project = db.Projects.Find(id); if (vm.Project == null) { return(HttpNotFound()); } return(View(vm)); }
public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Ticket ticket = db.Tickets.Find(id); if (ticket == null) { return(HttpNotFound()); } var myProjects = projectHelper.ListUserProjects(User.Identity.GetUserId()); ProjectsHelper projectsHelper = new ProjectsHelper(); List <ApplicationUser> projectusers = new List <ApplicationUser>(); List <string> projectDevIds = new List <string>(); foreach (Project project in myProjects) { projectDevIds = projectsHelper.UsersInRoleOnProject(project.Id, "Developer"); } foreach (string devId in projectDevIds) { ApplicationUser devUser = db.Users.Find(devId); projectusers.Add(devUser); } ViewBag.AssignedToUserId = new SelectList(projectusers, "Id", "DisplayName", ticket.AssignedToUserId); return(View(ticket)); }
public ActionResult Create() { var person = User.Identity.GetUserId(); var projHelp = new ProjectsHelper(); var projects = projHelp.ListUserProjects(person); ViewBag.OwnerUserID = User.Identity.GetUserId(); ViewBag.ProjectID = new SelectList(projects, "ID", "Name"); ViewBag.TicketPriorityID = new SelectList(db.TicketPriorities, "ID", "Name"); ViewBag.TicketTypeID = new SelectList(db.TicketTypes, "ID", "Name"); return(View()); }
public ActionResult AssignDev(int ticketId) { AssignDevViewModel vm = new AssignDevViewModel(); ProjectsHelper helper = new ProjectsHelper(); var tkt = db.Tickets.Find(ticketId); var dev = helper.ProjectUsersByRole(tkt.ProjectId, "Developer"); vm.Developers = new SelectList(dev, "Id", "FirstName"); vm.Ticket = tkt; return(View(vm)); }
public ActionResult AddDEV(int id) { ProjectDevViewModel vm = new ProjectDevViewModel(); UserRolesHelper helper = new UserRolesHelper(); ProjectsHelper pHelper = new ProjectsHelper(); var dev = helper.UsersInRole("Developer"); var projdev = pHelper.ProjectUsersByRole(id, "Developer").Select(u => u.Id).ToArray(); vm.DevUsers = new MultiSelectList(dev, "Id", "FirstName", projdev); vm.Project = db.Projects.Find(id); return(View(vm)); }
// GET: Projects //[Authorize(Roles = "Admin, ProjectManager, Developer, Submitter")] public ActionResult Index() { if (User.IsInRole("Admin") || User.IsInRole("ProjectManager") || User.IsInRole("Developer") || User.IsInRole("Submitter")) { var userId = User.Identity.GetUserId(); var user = db.Users.Find(userId); var project = new List <Projects>(); ProjectsHelper helper = new ProjectsHelper(db); project = user.Projects.ToList(); db.SaveChanges(); return(View(project)); } return(View()); }
public JsonResult GetTicketsPerProjectData() { ProjectsHelper projectsHelper = new ProjectsHelper(); var dataSet = new List <TicketPerProjectData>(); var projects = projectsHelper.ListUserProjects(User.Identity.GetUserId()); foreach (var project in projects) { dataSet.Add(new TicketPerProjectData { Label = project.Name, Value = project.Tickets.Count() }); } return(Json(dataSet)); }
public ActionResult AssignPM(AdminProjectViewModel adminVm) { if (ModelState.IsValid) { ProjectsHelper helper = new ProjectsHelper(); var prj = db.Projects.Find(adminVm.Project.Id); prj.PMID = adminVm.SelectedUser; helper.AddUserToProject(prj.PMID, prj.Id); db.SaveChanges(); return(RedirectToAction("Index")); } // return View(adminVm.Project.Id); return(View(adminVm)); }
public ActionResult Create([Bind(Include = "Id,Title,Created,Updated,Body,UserId")] Projects project) { if (ModelState.IsValid) { ProjectsHelper helper = new ProjectsHelper(db); var userId = User.Identity.GetUserId(); var user = db.Users.Find(userId); project.Created = DateTimeOffset.Now; db.Projects.Add(project); helper.AssignedUser(userId, project.Id); db.Projects.Add(project); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(project)); }
public ActionResult Index() { if (User.IsInRole("Developer")) { ProjectsHelper helper = new ProjectsHelper(); var userId = db.Users.SingleOrDefault(u => u.UserName == User.Identity.Name).Id; return(View(helper.ListUserProjects(userId))); } if (User.IsInRole("ProjectManager")) { ProjectsHelper helper = new ProjectsHelper(); var userId = db.Users.SingleOrDefault(u => u.UserName == User.Identity.Name).Id; return(View(helper.ListUserProjects(userId))); } return(View(db.Project.ToList())); }
public async Task <IActionResult> Index(FinishFormModel formModel) { Console.WriteLine("File Session Id: " + formModel.FileSessionId); // Set Status to Finializing var sessionResponse = SetSessionStatus(formModel.SessionId, "Finializing"); // Initiate Snapshot var client = new HttpAuthClient(); var response = await StartSnapshot(formModel.SessionId, formModel.FileSessionId); var snapshotResponse = await WaitForSnapshotResponse(formModel.SessionId, formModel.FileSessionId); // Download Snapshot var snapshotStream = await DownloadSnapshot(snapshotResponse.DownloadURL); Console.WriteLine("Download URL: " + snapshotResponse.DownloadURL); // Delete Session response = await DeleteSession(formModel.SessionId); // Start Checkin var projectFilesResponse = await CheckinProjectFile(formModel.ProjectId, formModel.FileProjectId); var projectsHelper = new ProjectsHelper(); var awsStrResponse = await projectsHelper.UploadToAWS(projectFilesResponse, snapshotStream); Console.WriteLine("AWS Response: " + awsStrResponse); // Confirm Checkin response = await ConfirmCheckin(formModel.ProjectId, formModel.FileProjectId); var flattenResponse = await StartFlattenJob(formModel.ProjectId, formModel.FileProjectId); // Get Shared Link var sharedLinkResponse = await GetShareLink(formModel.ProjectId, formModel.FileProjectId); var model = new FinishModel() { ProjectLink = sharedLinkResponse.ShareLink }; return(View(model)); }
// GET: Projects public ActionResult Index(string proj) { var userId = User.Identity.GetUserId(); ViewBag.UserId = userId; if (proj == "AllProjects") { TempData["activeTab"] = "All"; return(View(db.Projects.ToList())); } else { var projHelper = new ProjectsHelper(); var projList = projHelper.ListUserProjects(userId); return(View(projList)); } }
public ActionResult AssignDEV(int id) { UserRolesHelper URHelper = new UserRolesHelper(); string PM = User.Identity.GetUserId(); if (PM != db.Projects.Find(id).PMID && URHelper.IsUserinRole(PM, "admin") != true) { return(RedirectToAction("Index")); } ProjectDEVViewModel vm = new ProjectDEVViewModel(); UserRolesHelper helper = new UserRolesHelper(); ProjectsHelper phelper = new ProjectsHelper(); var dev = helper.UsersInRole("Developer"); var projdev = phelper.ProjectUsersByRole(id, "Developer").Select(u => u.Id).ToArray(); vm.DevUsers = new MultiSelectList(dev, "Id", "DisplayName", projdev); vm.Project = db.Projects.Find(id); return(View(vm)); }
public ActionResult Edit(int?Id) { if (Id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Projects project = db.Projects.Find(Id); if (project == null) { return(HttpNotFound()); } ProjectsHelper projectsHelper = new ProjectsHelper(db); var userId = User.Identity.GetUserId(); if (!projectsHelper.HasProject(userId, project.Id)) { TempData["Error"] = "Sorry, you do not have permission to access that project."; return(RedirectToAction("Index")); } return(View(project)); }
public PartialViewResult AddUsers(int id, List <string> SelectedUsers) { ProjectsHelper helper = new ProjectsHelper(); var prj = db.Projects.Find(id); foreach (var usr in prj.Users) { helper.RemoveUserFromProject(usr.Id, id); } foreach (var dev in SelectedUsers) { helper.AddUserToProject(dev, prj.Id); } ProjectsHelper phelper = new ProjectsHelper(); ProjectDetailViewModel model = new ProjectDetailViewModel(); model.Developers = phelper.ProjectUsersByRole(id, "Submitter"); model.Submitters = phelper.ProjectUsersByRole(id, "Developer"); return(PartialView("_TeamMembers", model)); }
// GET: Projects/Details/5 public ActionResult Details(int?Id, string userId) { if (Id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Projects project = db.Projects.Find(Id); if (project == null) { return(HttpNotFound()); } var tickets = project.Tickets.OrderByDescending(t => t.Created).ToList(); ProjectsHelper projectsHelper = new ProjectsHelper(db); userId = User.Identity.GetUserId(); if (!projectsHelper.HasProject(userId, project.Id)) { TempData["Error"] = "Sorry, you do not have permission to access that project."; return(RedirectToAction("Index")); } return(View(project)); }
public ActionResult AddDEV(ProjectDevViewModel model) { ProjectsHelper helper = new ProjectsHelper(); if (ModelState.IsValid) { var prj = db.Projects.Find(model.Project.Id); foreach (var usr in prj.Users) { helper.RemoveUserFromProject(usr.Id, prj.Id); } foreach (var dev in model.SelectedUsers) { helper.AddUserToProject(dev, model.Project.Id); } return(RedirectToAction("Details", new { id = model.Project.Id })); } return(View(model.Project.Id)); }
//GET: Home/Dashboard/ public ActionResult Dashboard(int?Id, int?projectId) { DashboardViewModel model = new DashboardViewModel(); //get user Id var userId = User.Identity.GetUserId(); var user = db.Users.Find(userId); //filter list of projects according to user role if (User.IsInRole("Admin") || User.IsInRole("ProjectManager") || User.IsInRole("Developer") || User.IsInRole("Submitter")) { //list this user's projects ProjectsHelper phelper = new ProjectsHelper(db); var project = phelper.ListProjects(userId).ToList(); model.Projects = user.Projects.OrderByDescending(p => p.Created).ToList(); //list this user's tickets TicketsHelper helper = new TicketsHelper(db); model.Tickets = helper.GetUserTickets(userId); var ticket = helper.ListTickets(userId).ToList(); model.OpenTickets = user.Projects.SelectMany(p => p.Tickets).Where(t => t.Status.Status == "Open").ToList(); model.PendingTickets = user.Projects.SelectMany(p => p.Tickets).Where(t => t.Status.Status == "Pending").ToList(); model.ClosedTickets = user.Projects.SelectMany(p => p.Tickets).Where(t => t.Status.Status == "Closed").ToList(); } return(View(model)); }
private List <ProjectsData> GetProjectList() { List <ProjectsData> dataList = new List <ProjectsData>(); try { ProjectsHelper dbHelper = new ProjectsHelper(_appSettings.Secrets.DbConnectionString); if ("M0000002".Equals(HttpContext.Session.GetString(Constants.Session.SystemRoleId))) { dataList = dbHelper.SelectData(HttpContext.Session.GetString(Constants.Session.EmployeeId)); } else { dataList = dbHelper.SelectFullData(); } } catch (Exception ex) { _logger.LogError("Error GetProjectList: {0}", ex.Message); } return(dataList); }
public ActionResult AssignDEV(ProjectDEVViewModel model) { ProjectsHelper helper = new ProjectsHelper(); if (ModelState.IsValid) { var prj = db.Projects.Find(model.Project.Id); //this code removes all users currently on the project // foreach (var usr in prj.Users) //{ // helper.RemoveUserFromProject(usr.Id, prj.Id); //} //this code add all the selected users to the project foreach (var dev in model.SelectedUsers) { helper.AddUserToProject(dev, model.Project.Id); } //the helper already saves the changes to the db return(RedirectToAction("Details", new { id = model.Project.Id })); } return(View(model)); }
protected override void Seed(SheilaWard_BugTracker.Models.ApplicationDbContext context) { var roleManager = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(context)); // Instantiates a RoleManager var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(context)); #region Roles if (!context.Roles.Any(r => r.Name == "Admin")) { roleManager.Create(new IdentityRole { Name = "Admin" }); } if (!context.Roles.Any(r => r.Name == "ProjectManager")) { roleManager.Create(new IdentityRole { Name = "ProjectManager" }); } if (!context.Roles.Any(r => r.Name == "Developer")) { roleManager.Create(new IdentityRole { Name = "Developer" }); } if (!context.Roles.Any(r => r.Name == "Submitter")) { roleManager.Create(new IdentityRole { Name = "Submitter" }); } #endregion #region Users if (!context.Users.Any(r => r.UserName == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Angela", LastName = "Smith", DisplayName = "ADSmith", AvatarUrl = "/Avatars/AngieSmith.jpg" }, "P@ssw0rd"); } if (!context.Users.Any(r => r.UserName == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Ares", LastName = "Eller", DisplayName = "AEller", AvatarUrl = "/Avatars/AresEller.jpg" }, "P@ssw0rd"); } if (!context.Users.Any(r => r.UserName == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Dave", LastName = "Rose", DisplayName = "DRose", AvatarUrl = "/Avatars/DaveRose.jpg" }, "P@ssw0rd"); } if (!context.Users.Any(r => r.UserName == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Cynthia", LastName = "Triplett", DisplayName = "CCTriplett", AvatarUrl = "/Avatars/Cindy.jpg" }, "P@ssw0rd"); } if (!context.Users.Any(r => r.UserName == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "James", LastName = "Cooley", DisplayName = "JCooley", AvatarUrl = "/Avatars/cooley.jpg" }, "P@ssw0rd"); } if (!context.Users.Any(r => r.UserName == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Lee", LastName = "Connelly", DisplayName = "LConnelly", AvatarUrl = "/Avatars/LeeConnelly.jpg" }, "P@ssw0rd"); } if (!context.Users.Any(r => r.UserName == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Sarvesh", LastName = "Patel", DisplayName = "SPatel", AvatarUrl = "/Avatars/sarvesh.jpg" }, "P@ssw0rd"); } if (!context.Users.Any(r => r.UserName == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Sheila", LastName = "Ward", DisplayName = "SSWard", AvatarUrl = "/Avatars/sheila.jpg" }, "P@ssw0rd"); } if (!context.Users.Any(r => r.UserName == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Sherri", LastName = "Creech", DisplayName = "SCreech", AvatarUrl = "/Avatars/SCreech.jpg" }, "P@ssw0rd"); } if (!context.Users.Any(r => r.UserName == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Teresa", LastName = "Shorter", DisplayName = "TShorter", AvatarUrl = "/Avatars/teresa.jpg" }, "P@ssw0rd"); } //Introduce my Demo Users... if (!context.Users.Any(u => u.Email == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Demo", LastName = "Admin", DisplayName = "The Admin", AvatarUrl = "/Avatars/kartunix(1).png" }, WebConfigurationManager.AppSettings["DemoUserPassword"]); } if (!context.Users.Any(u => u.Email == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Demo", LastName = "Project Manager", DisplayName = "The PM", AvatarUrl = "/Avatars/kartunix(2).png" }, WebConfigurationManager.AppSettings["DemoUserPassword"]); } if (!context.Users.Any(u => u.Email == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Demo", LastName = "Developer", DisplayName = "The Dev", AvatarUrl = "/Avatars/kartunix(4).png" }, WebConfigurationManager.AppSettings["DemoUserPassword"]); } if (!context.Users.Any(u => u.Email == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Demo", LastName = "Submitter", DisplayName = "The Sub", AvatarUrl = "/Avatars/kartunix(3).png" }, WebConfigurationManager.AppSettings["DemoUserPassword"]); } #endregion #region AssignToRoles var sheilaId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(sheilaId, "Admin"); var adminId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(adminId, "Admin"); var teresaId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(teresaId, "Submitter"); var sherriId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(sherriId, "Submitter"); var submitterId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(submitterId, "Submitter"); var daveId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(daveId, "ProjectManager"); var angieId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(angieId, "ProjectManager"); var PMId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(PMId, "ProjectManager"); var cindyId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(cindyId, "Developer"); var aresId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(aresId, "Developer"); var cooleyId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(cooleyId, "Developer"); var leeId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(leeId, "Developer"); var sarveshId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(sarveshId, "Developer"); var DevId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(DevId, "Developer"); #endregion #region Project Creation DateTime P1Date = new DateTime(2019, 07, 12, 19, 00, 14, 16); DateTime P2Date = new DateTime(2019, 06, 23, 17, 06, 25, 32); DateTime P3Date = new DateTime(2019, 08, 04, 16, 23, 24, 22); DateTime P4Date = new DateTime(2019, 04, 12, 10, 45, 17, 26); DateTime P5Date = new DateTime(2019, 09, 23, 18, 04, 24, 06); context.Projects.AddOrUpdate( p => p.Name, new Project { Name = "Coder Foundry Blog", Description = "Blog exercise", Created = new DateTimeOffset(P1Date.Year, P1Date.Month, P1Date.Day, P1Date.Hour, P1Date.Minute, P1Date.Second, P1Date.Millisecond, new TimeSpan(2, 0, 0)) }, new Project { Name = "Portfolio Project", Description = "My Portfolio created during Coder Foundry", Created = new DateTimeOffset(P2Date.Year, P2Date.Month, P2Date.Day, P2Date.Hour, P2Date.Minute, P2Date.Second, P2Date.Millisecond, new TimeSpan(2, 0, 0)) }, new Project { Name = "Bug Tracker Project", Description = "System to track tickets in an IT system - can be bugs, or requests for enhancements or documentation", Created = new DateTimeOffset(P3Date.Year, P3Date.Month, P3Date.Day, P3Date.Hour, P3Date.Minute, P3Date.Second, P3Date.Millisecond, new TimeSpan(2, 0, 0)) }, new Project { Name = "YelpCamp Project", Description = "Create a new Blog in which multiple people can write posts", Created = new DateTimeOffset(P4Date.Year, P4Date.Month, P4Date.Day, P4Date.Hour, P4Date.Minute, P4Date.Second, P4Date.Millisecond, new TimeSpan(2, 0, 0)) }, new Project { Name = "Financial Portal", Description = "Keep up with your bills and track your budget", Created = new DateTimeOffset(P5Date.Year, P5Date.Month, P5Date.Day, P5Date.Hour, P5Date.Minute, P5Date.Second, P5Date.Millisecond, new TimeSpan(2, 0, 0)) } ); context.SaveChanges(); #endregion #region Project Assignment var blogProjectId = context.Projects.FirstOrDefault(p => p.Name == "Coder Foundry Blog").Id; var bugTrackerProjectId = context.Projects.FirstOrDefault(p => p.Name == "Bug Tracker Project").Id; var portfolioProjectId = context.Projects.FirstOrDefault(p => p.Name == "Portfolio Project").Id; var yelpCampProjectId = context.Projects.FirstOrDefault(p => p.Name == "YelpCamp Project").Id; var financialPortalProjectId = context.Projects.FirstOrDefault(p => p.Name == "Financial Portal").Id; var projHelper = new ProjectsHelper(); // Assign Sheila to projects projHelper.AddUserToProject(sheilaId, portfolioProjectId); projHelper.AddUserToProject(sheilaId, blogProjectId); projHelper.AddUserToProject(sheilaId, bugTrackerProjectId); projHelper.AddUserToProject(sheilaId, yelpCampProjectId); projHelper.AddUserToProject(sheilaId, financialPortalProjectId); // Assign Demo Admin to projects projHelper.AddUserToProject(adminId, portfolioProjectId); projHelper.AddUserToProject(adminId, blogProjectId); projHelper.AddUserToProject(adminId, bugTrackerProjectId); projHelper.AddUserToProject(adminId, yelpCampProjectId); projHelper.AddUserToProject(adminId, financialPortalProjectId); // Assign Angie to projects projHelper.AddUserToProject(angieId, blogProjectId); projHelper.AddUserToProject(PMId, portfolioProjectId); // Assign Dave to projects projHelper.AddUserToProject(daveId, bugTrackerProjectId); projHelper.AddUserToProject(daveId, yelpCampProjectId); // Assign Demo PM to projects projHelper.AddUserToProject(PMId, bugTrackerProjectId); projHelper.AddUserToProject(PMId, portfolioProjectId); projHelper.AddUserToProject(PMId, financialPortalProjectId); // Assign Teresa to projects projHelper.AddUserToProject(teresaId, blogProjectId); projHelper.AddUserToProject(teresaId, bugTrackerProjectId); // Assign Sherri to projects projHelper.AddUserToProject(sherriId, portfolioProjectId); // Assign Demo Submitter to projects projHelper.AddUserToProject(submitterId, yelpCampProjectId); projHelper.AddUserToProject(submitterId, portfolioProjectId); projHelper.AddUserToProject(submitterId, financialPortalProjectId); // Assign Ares to projects projHelper.AddUserToProject(aresId, blogProjectId); projHelper.AddUserToProject(aresId, financialPortalProjectId); // Assign Sarvesh to projects projHelper.AddUserToProject(sarveshId, portfolioProjectId); projHelper.AddUserToProject(sarveshId, financialPortalProjectId); // Assign Lee to projects projHelper.AddUserToProject(leeId, bugTrackerProjectId); // Assign Cindy to projects projHelper.AddUserToProject(cindyId, bugTrackerProjectId); // Assign Cooley to projects projHelper.AddUserToProject(cooleyId, portfolioProjectId); projHelper.AddUserToProject(cooleyId, blogProjectId); // Assign Demo Developer to projects projHelper.AddUserToProject(DevId, bugTrackerProjectId); projHelper.AddUserToProject(DevId, portfolioProjectId); projHelper.AddUserToProject(DevId, financialPortalProjectId); #endregion #region Ticket Priorities, Statuses, & Types (require Foreign Keys) context.TicketPriorities.AddOrUpdate( t => t.Name, new TicketPriority { Name = "None", Description = "Priority has not been determined" }, new TicketPriority { Name = "Low", Description = "Lowest priority level" }, new TicketPriority { Name = "Medium", Description = "Mid-level priority" }, new TicketPriority { Name = "High", Description = "A high priority level requiring quick action" }, new TicketPriority { Name = "Urgent", Description = "Highest priority level requiring immediate action" } ); context.TicketStatuses.AddOrUpdate( t => t.Name, new TicketStatus { Name = "New/Unassigned", Description = "Has not been approved or has been tabled" }, new TicketStatus { Name = "Inactive", Description = "Not currently being worked on" }, new TicketStatus { Name = "Active/Assigned", Description = "Developer is currently working on ticket" }, new TicketStatus { Name = "Withdrawn", Description = "Ticket has been withdrawn" }, new TicketStatus { Name = "Completed", Description = "Development and Testing done, but not deployed" }, new TicketStatus { Name = "Archived", Description = "Ticket is completed and all work delivered" } ); context.TicketTypes.AddOrUpdate( t => t.Name, new TicketType { Name = "Defect", Description = "There is a defect in the application code or logic" }, new TicketType { Name = "Documentation", Description = "There is a need for documentation/training on the application" }, new TicketType { Name = "Enhancement", Description = "There is a request for more functionality for the application" } ); context.SaveChanges(); #endregion #region Ticket creation DateTime T1Date = new DateTime(2019, 09, 03, 19, 00, 14, 16); DateTime T2Date = new DateTime(2019, 08, 24, 18, 16, 13, 27); DateTime T3Date = new DateTime(2019, 09, 09, 19, 00, 14, 16); DateTime T4Date = new DateTime(2019, 07, 02, 19, 00, 14, 16); DateTime T5Date = new DateTime(2019, 06, 25, 18, 16, 23, 34); DateTime T6Date = new DateTime(2019, 08, 19, 20, 08, 37, 52); DateTime T7Date = new DateTime(2019, 08, 21, 18, 55, 43, 16); DateTime T8Date = new DateTime(2019, 10, 23, 18, 55, 43, 16); DateTime T9Date = new DateTime(2019, 10, 23, 19, 17, 26, 12); DateTime T10Date = new DateTime(2019, 10, 18, 11, 57, 13, 19); DateTime U1Date = new DateTime(2019, 09, 21, 10, 45, 23, 14); DateTime U2Date = new DateTime(2019, 09, 17, 14, 22, 52, 05); DateTime U3Date = new DateTime(2019, 10, 01, 16, 08, 19, 36); DateTime U6Date = new DateTime(2019, 10, 03, 08, 45, 34, 18); DateTime U7Date = new DateTime(2019, 10, 04, 14, 04, 43, 05); context.Tickets.AddOrUpdate( p => p.Title, new Ticket { ProjectId = financialPortalProjectId, OwnerUserId = submitterId, Title = "Highlight links when active", Description = "On the Household Dashboard, all links are active", PercentComplete = 20, Created = new DateTimeOffset(T10Date.Year, T10Date.Month, T10Date.Day, T10Date.Hour, T10Date.Minute, T10Date.Second, T10Date.Millisecond, new TimeSpan(2, 0, 0)), TicketPriorityId = context.TicketPriorities.FirstOrDefault(t => t.Name == "Urgent").Id, TicketStatusId = context.TicketStatuses.FirstOrDefault(t => t.Name == "New/Unassigned").Id, TicketTypeId = context.TicketTypes.FirstOrDefault(t => t.Name == "Defect").Id }, new Ticket { ProjectId = blogProjectId, OwnerUserId = submitterId, AssignedToUserId = aresId, Title = "Add Blog Information in Configuration File", Description = "Blog Information was lost when database deleted, but images of blogs exist", PercentComplete = 20, Created = new DateTimeOffset(T9Date.Year, T9Date.Month, T9Date.Day, T9Date.Hour, T9Date.Minute, T9Date.Second, T9Date.Millisecond, new TimeSpan(2, 0, 0)), TicketPriorityId = context.TicketPriorities.FirstOrDefault(t => t.Name == "Urgent").Id, TicketStatusId = context.TicketStatuses.FirstOrDefault(t => t.Name == "Active/Assigned").Id, TicketTypeId = context.TicketTypes.FirstOrDefault(t => t.Name == "Defect").Id }, new Ticket { ProjectId = portfolioProjectId, OwnerUserId = submitterId, AssignedToUserId = leeId, Title = "Add button to clear input on Javascript Exercises", Description = "Values in input forms do not clear out and we need a button to do that.", PercentComplete = 40, Created = new DateTimeOffset(T8Date.Year, T8Date.Month, T8Date.Day, T8Date.Hour, T8Date.Minute, T8Date.Second, T8Date.Millisecond, new TimeSpan(2, 0, 0)), TicketPriorityId = context.TicketPriorities.FirstOrDefault(t => t.Name == "Urgent").Id, TicketStatusId = context.TicketStatuses.FirstOrDefault(t => t.Name == "Active/Assigned").Id, TicketTypeId = context.TicketTypes.FirstOrDefault(t => t.Name == "Defect").Id }, new Ticket { ProjectId = bugTrackerProjectId, OwnerUserId = submitterId, AssignedToUserId = DevId, Title = "Make Icons turn red when active", Description = "Make the Icons in the left navigation turn red when active", PercentComplete = 100, Created = new DateTimeOffset(T1Date.Year, T1Date.Month, T1Date.Day, T1Date.Hour, T1Date.Minute, T1Date.Second, T1Date.Millisecond, new TimeSpan(2, 0, 0)), Updated = new DateTimeOffset(U1Date.Year, U1Date.Month, U1Date.Day, U1Date.Hour, U1Date.Minute, U1Date.Second, U1Date.Millisecond, new TimeSpan(2, 0, 0)), TicketPriorityId = context.TicketPriorities.FirstOrDefault(t => t.Name == "Low").Id, TicketStatusId = context.TicketStatuses.FirstOrDefault(t => t.Name == "Archived").Id, TicketTypeId = context.TicketTypes.FirstOrDefault(t => t.Name == "Enhancement").Id, Archived = true }, new Ticket { ProjectId = bugTrackerProjectId, OwnerUserId = submitterId, AssignedToUserId = DevId, Title = "Add Buttons for Table Downloads", Description = "Add Copy, CSV, Excel, PDF, and Print buttons for tables", PercentComplete = 100, Created = new DateTimeOffset(T2Date.Year, T2Date.Month, T2Date.Day, T2Date.Hour, T2Date.Minute, T2Date.Second, T2Date.Millisecond, new TimeSpan(2, 0, 0)), Updated = new DateTimeOffset(U2Date.Year, U2Date.Month, U2Date.Day, U2Date.Hour, U2Date.Minute, U2Date.Second, U2Date.Millisecond, new TimeSpan(2, 0, 0)), TicketPriorityId = context.TicketPriorities.FirstOrDefault(t => t.Name == "Medium").Id, TicketStatusId = context.TicketStatuses.FirstOrDefault(t => t.Name == "Completed").Id, TicketTypeId = context.TicketTypes.FirstOrDefault(t => t.Name == "Enhancement").Id, }, new Ticket { ProjectId = bugTrackerProjectId, OwnerUserId = submitterId, AssignedToUserId = cooleyId, Title = "Add Functionality to Edit Projects View", Description = "On Edit Projects, give Admin/PM ability to assign people to projects", PercentComplete = 100, Created = new DateTimeOffset(T3Date.Year, T3Date.Month, T3Date.Day, T3Date.Hour, T3Date.Minute, T3Date.Second, T3Date.Millisecond, new TimeSpan(2, 0, 0)), Updated = new DateTimeOffset(U3Date.Year, U3Date.Month, U3Date.Day, U3Date.Hour, U3Date.Minute, U3Date.Second, U3Date.Millisecond, new TimeSpan(2, 0, 0)), TicketPriorityId = context.TicketPriorities.FirstOrDefault(t => t.Name == "None").Id, TicketStatusId = context.TicketStatuses.FirstOrDefault(t => t.Name == "Completed").Id, TicketTypeId = context.TicketTypes.FirstOrDefault(t => t.Name == "Enhancement").Id, }, new Ticket { ProjectId = bugTrackerProjectId, OwnerUserId = submitterId, AssignedToUserId = DevId, Title = "Edit Configuration File for Demo Day", Description = "Expand Seed Method to include data showing demo users and various priorities, statuses and types", PercentComplete = 60, Created = new DateTimeOffset(T3Date.Year, T3Date.Month, T3Date.Day, T3Date.Hour, T3Date.Minute, T3Date.Second, T3Date.Millisecond, new TimeSpan(2, 0, 0)), TicketPriorityId = context.TicketPriorities.FirstOrDefault(t => t.Name == "None").Id, TicketStatusId = context.TicketStatuses.FirstOrDefault(t => t.Name == "Active/Assigned").Id, TicketTypeId = context.TicketTypes.FirstOrDefault(t => t.Name == "Documentation").Id, }, new Ticket { ProjectId = portfolioProjectId, OwnerUserId = sherriId, AssignedToUserId = cooleyId, Title = "Activate Google Maps", Description = "The Portfolio Project has a Google Maps area in the 'Contact' section that needs to be activated.", PercentComplete = 50, Created = new DateTimeOffset(T4Date.Year, T4Date.Month, T4Date.Day, T4Date.Hour, T4Date.Minute, T4Date.Second, T4Date.Millisecond, new TimeSpan(2, 0, 0)), TicketPriorityId = context.TicketPriorities.FirstOrDefault(t => t.Name == "Urgent").Id, TicketStatusId = context.TicketStatuses.FirstOrDefault(t => t.Name == "Active/Assigned").Id, TicketTypeId = context.TicketTypes.FirstOrDefault(t => t.Name == "Defect").Id, }, new Ticket { ProjectId = portfolioProjectId, OwnerUserId = sherriId, AssignedToUserId = DevId, Title = "Separate JavaScript Exercises", Description = "Bobby wants the Javascript Exercises put in a different section than the Bug Tracker and the Blog. He also wants them separated out into: Math, Factorial, Fizz-Buzz, and Palindrome.", PercentComplete = 70, Created = new DateTimeOffset(T5Date.Year, T5Date.Month, T5Date.Day, T5Date.Hour, T5Date.Minute, T5Date.Second, T5Date.Millisecond, new TimeSpan(2, 0, 0)), TicketPriorityId = context.TicketPriorities.FirstOrDefault(t => t.Name == "High").Id, TicketStatusId = context.TicketStatuses.FirstOrDefault(t => t.Name == "Active/Assigned").Id, TicketTypeId = context.TicketTypes.FirstOrDefault(t => t.Name == "Defect").Id, }, new Ticket { ProjectId = bugTrackerProjectId, OwnerUserId = teresaId, AssignedToUserId = cindyId, Title = "Add List of Users to Project Details", Description = "Add a list of all users on a particular project to that project's Detail page.", PercentComplete = 25, Created = new DateTimeOffset(T6Date.Year, T6Date.Month, T6Date.Day, T6Date.Hour, T6Date.Minute, T6Date.Second, T6Date.Millisecond, new TimeSpan(2, 0, 0)), Updated = new DateTimeOffset(U6Date.Year, U6Date.Month, U6Date.Day, U6Date.Hour, U6Date.Minute, U6Date.Second, U6Date.Millisecond, new TimeSpan(2, 0, 0)), TicketPriorityId = context.TicketPriorities.FirstOrDefault(t => t.Name == "Medium").Id, TicketStatusId = context.TicketStatuses.FirstOrDefault(t => t.Name == "Withdrawn").Id, TicketTypeId = context.TicketTypes.FirstOrDefault(t => t.Name == "Enhancement").Id, }, new Ticket { ProjectId = bugTrackerProjectId, OwnerUserId = teresaId, AssignedToUserId = cindyId, Title = "Add List of Tickets to Project Details", Description = "Add a list of all tickets on a particular project to that project's Detail page.", PercentComplete = 45, Created = new DateTimeOffset(T7Date.Year, T7Date.Month, T7Date.Day, T7Date.Hour, T7Date.Minute, T7Date.Second, T7Date.Millisecond, new TimeSpan(2, 0, 0)), Updated = new DateTimeOffset(U7Date.Year, U7Date.Month, U7Date.Day, U7Date.Hour, U7Date.Minute, U7Date.Second, U7Date.Millisecond, new TimeSpan(2, 0, 0)), TicketPriorityId = context.TicketPriorities.FirstOrDefault(t => t.Name == "Medium").Id, TicketStatusId = context.TicketStatuses.FirstOrDefault(t => t.Name == "Inactive").Id, TicketTypeId = context.TicketTypes.FirstOrDefault(t => t.Name == "Enhancement").Id, } ); #endregion }
protected override void Seed(Bug_Tracker.Models.ApplicationDbContext context) { var roleManager = new RoleManager <IdentityRole>( new RoleStore <IdentityRole>(context)); if (!context.Roles.Any(r => r.Name == "NewUser")) { roleManager.Create(new IdentityRole { Name = "NewUser" }); } if (!context.Roles.Any(r => r.Name == "Admin")) { roleManager.Create(new IdentityRole { Name = "Admin" }); } if (!context.Roles.Any(r => r.Name == "PM")) { roleManager.Create(new IdentityRole { Name = "PM" }); } if (!context.Roles.Any(r => r.Name == "Dev")) { roleManager.Create(new IdentityRole { Name = "Dev" }); } if (!context.Roles.Any(r => r.Name == "Sub")) { roleManager.Create(new IdentityRole { Name = "Sub" }); } if (!context.Roles.Any(r => r.Name == "DemoAdmin")) { roleManager.Create(new IdentityRole { Name = "DemoAdmin" }); } if (!context.Roles.Any(r => r.Name == "DemoPM")) { roleManager.Create(new IdentityRole { Name = "DemoPM" }); } if (!context.Roles.Any(r => r.Name == "DemoDev")) { roleManager.Create(new IdentityRole { Name = "DemoDev" }); } if (!context.Roles.Any(r => r.Name == "DemoSub")) { roleManager.Create(new IdentityRole { Name = "DemoSub" }); } var userStore = new UserStore <ApplicationUser>(context); var userManager = new UserManager <ApplicationUser>(userStore); var demoPassword = WebConfigurationManager.AppSettings["DemoPassword"]; if (!context.Users.Any(u => u.Email == "*****@*****.**")) { var user = new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Allison", LastName = "Tsatsa", DisplayName = "Admin", AvatarPath = "/Avatars/process-thinking-svg-png-icon-download-6.png" }; userManager.Create(user, "ABC&456"); userManager.AddToRoles(user.Id, "Admin"); } if (!context.Users.Any(u => u.Email == "*****@*****.**")) { var user = new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Ricki", LastName = "Lake", DisplayName = "DemoAdmin", AvatarPath = "/Avatars/download.jpg" }; userManager.Create(user, demoPassword); userManager.AddToRoles(user.Id, "DemoAdmin"); } if (!context.Users.Any(u => u.Email == "*****@*****.**")) { var user = new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Drew", LastName = "Russell", DisplayName = "Walking Glow Stick", AvatarPath = "/Avatars/avatar_boy2.png" }; userManager.Create(user, "ABC&456"); userManager.AddToRoles(user.Id, "PM"); } if (!context.Users.Any(u => u.Email == "*****@*****.**")) { var user = new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Mark", LastName = "Wahlburg", DisplayName = "DemoPM", AvatarPath = "/Avatars/download.jpg" }; userManager.Create(user, demoPassword); userManager.AddToRoles(user.Id, "DemoPM"); } if (!context.Users.Any(u => u.Email == "*****@*****.**")) { var user = new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "IP", LastName = "Freely", DisplayName = "IP Freely" }; userManager.Create(user, "ABC&456"); userManager.AddToRoles(user.Id, "Dev"); } if (!context.Users.Any(u => u.Email == "*****@*****.**")) { var user = new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "John", LastName = "Smith", DisplayName = "Johnnie", AvatarPath = "/Avatars/download.jpg" }; userManager.Create(user, demoPassword); userManager.AddToRoles(user.Id, "Dev"); } if (!context.Users.Any(u => u.Email == "*****@*****.**")) { var user = new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Chester", LastName = "Copperpot", DisplayName = "Chester Copperpot" }; userManager.Create(user, "ABC&456"); userManager.AddToRoles(user.Id, "Dev"); } if (!context.Users.Any(u => u.Email == "*****@*****.**")) { var user = new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "TyMay", LastName = "Iavanother", DisplayName = "TyMay" }; userManager.Create(user, "ABC&456"); userManager.AddToRoles(user.Id, "Sub"); } if (!context.Users.Any(u => u.Email == "*****@*****.**")) { var user = new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Demo", LastName = "Sub", DisplayName = "DemoSub" }; userManager.Create(user, "ABC&456"); userManager.AddToRoles(user.Id, "DemoSub"); } if (!context.Users.Any(u => u.Email == "*****@*****.**")) { var user = new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "David", LastName = "Tenant", DisplayName = "DemoSub", AvatarPath = "/Avatars/download.jpg" }; userManager.Create(user, demoPassword); userManager.AddToRoles(user.Id, "DemoSub"); } // This method will be called after migrating to the latest version. // You can use the DbSet<T>.AddOrUpdate() helper extension method // to avoid creating duplicate seed data. #region Load Up Ticket Type context.TicketTypes.AddOrUpdate( t => t.Name, new TicketType { Name = "Defect", Description = "Classic Bug" }, new TicketType { Name = "New Functionality", Description = "Would like additional application functionality" }, new TicketType { Name = "Other", Description = "Issue of another kind" } ); #endregion #region Load Up Ticket Priority context.TicketPriorities.AddOrUpdate( t => t.Name, new TicketPriority { Name = "Low", Description = "Can Wait" }, new TicketPriority { Name = "Medium", Description = "Get to Soon" }, new TicketPriority { Name = "High", Description = "Immediately, if not sooner." } );; #endregion #region Load Up Ticket Status context.TicketStatuses.AddOrUpdate( t => t.Name, new TicketStatus { Name = "New", Description = "Newly created" }, new TicketStatus { Name = "Assigned", Description = "Assigned to a Developer" }, new TicketStatus { Name = "Unassigned", Description = "Not yet assigned to a Developer" }, new TicketStatus { Name = "Reassigned", Description = "Assigned to a new Developer" }, new TicketStatus { Name = "Closed", Description = "Ticket has been resolved" }); #endregion #region Seed a Demo Project context.Projects.AddOrUpdate( t => t.Name, new Project { Name = "Demo Project", Created = DateTime.Now }); #endregion #region Seed a Demo Ticket var demoProject = context.Projects.FirstOrDefault(p => p.Name == "Demo Project").Id; var demoTicketTypeId = context.TicketTypes.FirstOrDefault(t => t.Name == "Defect").Id; var demoTicketPriorityId = context.TicketPriorities.FirstOrDefault(pr => pr.Name == "High").Id; var demoTicketStatusId = context.TicketStatuses.FirstOrDefault(pr => pr.Name == "New").Id; var demoSubmitterId = context.Users.FirstOrDefault(u => u.Email == "*****@*****.**").Id; var projectsHelper = new ProjectsHelper(); projectsHelper.AddUserToProject(demoSubmitterId, demoProject); context.Tickets.AddOrUpdate( t => t.Title, new Ticket { Title = "Demo Ticket", Created = DateTime.Now, ProjectId = demoProject, TicketTypeId = demoTicketTypeId, TicketPriorityId = demoTicketPriorityId, TicketStatusId = demoTicketStatusId, SubmitterId = demoSubmitterId }); context.SaveChanges(); #endregion #region PROJECTS & TICKETS var rand = new Random(); var rolesHelper = new RoleHelper(); var projHelper = new ProjectsHelper(); var submitters = rolesHelper.UsersInRole("Sub").ToList(); submitters.AddRange(rolesHelper.UsersInRole("Admin").ToList()); var seedTicketTypeId = context.TicketTypes.Select(t => t.Id).ToList(); var seedTicketPriorityId = context.TicketPriorities.Select(t => t.Id).ToList(); var seedTicketStatusId = context.TicketStatuses.FirstOrDefault(t => t.Name == "New").Id; for (int i = 1; i <= 10; i++) { var seededProjectName = $"Project {21 - i} (Seeded)"; ApplicationDbContext db = new ApplicationDbContext(); db.Projects.AddOrUpdate(t => t.Name, new Project { Name = seededProjectName, Description = "This is a demo Project that has been seeded.", Created = DateTime.Now.AddDays(-i * 3) }); db.SaveChanges(); var seededProject = db.Projects.FirstOrDefault(p => p.Name == seededProjectName); var seedSub = submitters[rand.Next(0, submitters.Count)]; seededProject.Users.Add(seedSub); for (int j = 1; j <= 5; j++) { ApplicationDbContext dbcontext = new ApplicationDbContext(); dbcontext.Tickets.AddOrUpdate(t => t.Title, new Ticket { Title = $"Ticket {i}.{j}", ProjectId = seededProject.Id, Description = "This is a seeded demo Ticket.", TicketTypeId = seedTicketTypeId[rand.Next(0, seedTicketTypeId.Count)], TicketPriorityId = seedTicketPriorityId[rand.Next(0, seedTicketPriorityId.Count)], TicketStatusId = seedTicketStatusId, SubmitterId = seedSub.Id, Created = DateTime.Now }); dbcontext.SaveChanges(); } } #endregion }
protected override void Seed(BugTracker.Models.ApplicationDbContext context) { #region Ticket Priorities, Ticket Statutes, ticket Type context.TicketPriorities.AddOrUpdate( t => t.Name, new TicketPriority { Name = "Urgent", Description = "Highest Priority, requiring immediate attention" }, new TicketPriority { Name = "High", Description = " second Highest Priority, requiring hasty attention" }, new TicketPriority { Name = "Medium", Description = "Normal Priority, requiring moderate attention, below urgent and high" }, new TicketPriority { Name = "Low", Description = "Little action is needed" }, new TicketPriority { Name = "None", Description = "Not a Priority" }, new TicketPriority { Name = "Unassigned", Description = "unassigned" } ); context.TicketStatuses.AddOrUpdate( t => t.Name, new TicketStatus { Name = "New UnAssigned", Description = "Unassigned to Developer" }, new TicketStatus { Name = "Assigned", Description = "Assigned to Developer" }, new TicketStatus { Name = "In progress", Description = "Being worked on by Developer" }, new TicketStatus { Name = "Reassigned", Description = "Has been reassigned to a different Developer" }, new TicketStatus { Name = "Unassigned", Description = "Has no Developer assigned to it" }, new TicketStatus { Name = "Completed", Description = "Completed!" } ); context.TicketTypes.AddOrUpdate( t => t.Name, new TicketType { Name = "Defective", Description = "Something is broken making the entire program to malfunction" }, new TicketType { Name = "Functionality Bug", Description = "A bug affecting the functionality of the website" }, new TicketType { Name = "Functionality Request", Description = "A request to change or add functionaliy to the program" }, new TicketType { Name = "Visual Bug", Description = "Non-Aligned visuals, or meshing of Z-index, etc" }, new TicketType { Name = "Visual Request", Description = "A request to add new visual features to the program" }, new TicketType { Name = "Low Prority", Description = "Issues that do not require immediate attention" } ); context.SaveChanges(); #endregion // This method will be called after migrating to the latest version. // You can use the DbSet<T>.AddOrUpdate() helper extension method // to avoid creating duplicate seed data. #region User & Role Creation var roleManager = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(context)); if (!context.Roles.Any(r => r.Name == "Admin")) { roleManager.Create(new IdentityRole { Name = "Admin" }); } var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(context)); if (!context.Users.Any(u => u.Email == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "sarvesh", LastName = "patel", DisplayName = "Sarvesh Patel" }, "Abc#123321"); } if (!context.Users.Any(u => u.Email == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Admin", LastName = "patel", DisplayName = "Admin Patel" }, WebConfigurationManager.AppSettings["DemoUserPassword"]); } var DemoAdmin = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(DemoAdmin, "Admin"); var adId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(adId, "Admin"); // roleManager = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(context)); if (!context.Roles.Any(r => r.Name == "Submitter")) { roleManager.Create(new IdentityRole { Name = "Submitter" }); } userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(context)); if (!context.Users.Any(u => u.Email == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Jack", LastName = "Dorsie", DisplayName = "Jack Dorsie" }, "Abc#123321"); } if (!context.Users.Any(u => u.Email == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Submitter", LastName = "patel", DisplayName = "Submitter Patel" }, WebConfigurationManager.AppSettings["DemoUserPassword"]); } var sbId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(sbId, "Submitter"); var DemoSubmitter = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(DemoSubmitter, "Submitter"); // roleManager = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(context)); if (!context.Roles.Any(r => r.Name == "Project Manager")) { roleManager.Create(new IdentityRole { Name = "Project Manager" }); } userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(context)); if (!context.Users.Any(u => u.Email == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Nancy", LastName = "Patel", DisplayName = "Nancy Patel" }, "Abc#123321"); } if (!context.Users.Any(u => u.Email == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "ProjectManager", LastName = "patel", DisplayName = "ProjectManager Patel" }, WebConfigurationManager.AppSettings["DemoUserPassword"]); } var pmId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(pmId, "Project Manager"); var DemoProjectManager = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(DemoProjectManager, "Project Manager"); // roleManager = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(context)); if (!context.Roles.Any(r => r.Name == "Developer")) { roleManager.Create(new IdentityRole { Name = "Developer" }); } userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(context)); if (!context.Users.Any(u => u.Email == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Jason", LastName = "Smith", DisplayName = "Jason Smith" }, "Abc#123321"); } if (!context.Users.Any(u => u.Email == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Developer", LastName = "patel", DisplayName = "Developer Patel" }, WebConfigurationManager.AppSettings["DemoUserPassword"]); } var dvId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(dvId, "Developer"); var DemoDeveloper = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(DemoDeveloper, "Developer"); #endregion #region Projection Creation context.Projects.AddOrUpdate( p => p.Name, new Project { Name = "SP Blog", Description = "This is the SP Blog project that is online.", Created = DateTime.Now }, new Project { Name = "Portfolio", Description = "This is the Portfolio project that is online.", Created = DateTime.Now }, new Project { Name = "CMS1", Description = "This is the CMS1 project that is online.", Created = DateTime.Now }, new Project { Name = "Bug Tracker", Description = "This is the BugTracker project that is online.", Created = DateTime.Now } ); context.SaveChanges(); #endregion #region Project assignment var blogProjectId = context.Projects.FirstOrDefault(p => p.Name == "SP Blog").Id; var bugTrackerId = context.Projects.FirstOrDefault(p => p.Name == "Bug Tracker").Id; var cmsId = context.Projects.FirstOrDefault(p => p.Name == "CMS1").Id; var projectHelper = new ProjectsHelper(); projectHelper.AddUserToProject(pmId, blogProjectId); projectHelper.AddUserToProject(dvId, blogProjectId); projectHelper.AddUserToProject(sbId, blogProjectId); projectHelper.AddUserToProject(adId, blogProjectId); projectHelper.AddUserToProject(DemoAdmin, blogProjectId); projectHelper.AddUserToProject(DemoSubmitter, blogProjectId); projectHelper.AddUserToProject(DemoProjectManager, blogProjectId); projectHelper.AddUserToProject(DemoDeveloper, blogProjectId); projectHelper.AddUserToProject(pmId, bugTrackerId); projectHelper.AddUserToProject(dvId, bugTrackerId); projectHelper.AddUserToProject(sbId, bugTrackerId); projectHelper.AddUserToProject(adId, bugTrackerId); projectHelper.AddUserToProject(DemoAdmin, bugTrackerId); projectHelper.AddUserToProject(DemoSubmitter, bugTrackerId); projectHelper.AddUserToProject(DemoProjectManager, bugTrackerId); projectHelper.AddUserToProject(DemoDeveloper, bugTrackerId); projectHelper.AddUserToProject(pmId, cmsId); projectHelper.AddUserToProject(dvId, cmsId); projectHelper.AddUserToProject(sbId, cmsId); projectHelper.AddUserToProject(adId, cmsId); projectHelper.AddUserToProject(DemoAdmin, cmsId); projectHelper.AddUserToProject(DemoSubmitter, cmsId); projectHelper.AddUserToProject(DemoProjectManager, cmsId); projectHelper.AddUserToProject(DemoDeveloper, cmsId); #endregion #region Ticket Creation // var ticketHelper = new TicketHelper(); context.Tickets.AddOrUpdate( p => p.Title, new Ticket { ProjectId = blogProjectId, OwnerUserId = sbId, Title = "Seeded Ticket #1", Description = "Testing a seeded Ticket", Created = DateTime.Now, TicketPriorityId = context.TicketPriorities.FirstOrDefault(t => t.Name == "Medium").Id, TicketStatusId = context.TicketStatuses.FirstOrDefault(t => t.Name == "New UnAssigned").Id, TicketTypeId = context.TicketTypes.FirstOrDefault(t => t.Name == "Visual Bug").Id, }, new Ticket { ProjectId = blogProjectId, OwnerUserId = sbId, AssignedToUserId = dvId, Title = "Seeded Ticket #2", Description = "Testing a seeded Ticket", Created = DateTime.Now, TicketPriorityId = context.TicketPriorities.FirstOrDefault(t => t.Name == "Medium").Id, TicketStatusId = context.TicketStatuses.FirstOrDefault(t => t.Name == "Assigned").Id, TicketTypeId = context.TicketTypes.FirstOrDefault(t => t.Name == "Defective").Id, }, new Ticket { ProjectId = bugTrackerId, OwnerUserId = sbId, Title = "Seeded Ticket #3", Description = "Testing a seeded Ticket", Created = DateTime.Now, TicketPriorityId = context.TicketPriorities.FirstOrDefault(t => t.Name == "Medium").Id, TicketStatusId = context.TicketStatuses.FirstOrDefault(t => t.Name == "New UnAssigned").Id, TicketTypeId = context.TicketTypes.FirstOrDefault(t => t.Name == "Visual Bug").Id, }, new Ticket { ProjectId = bugTrackerId, OwnerUserId = sbId, AssignedToUserId = dvId, Title = "Seeded Ticket #4", Description = "Testing a seeded Ticket", Created = DateTime.Now, TicketPriorityId = context.TicketPriorities.FirstOrDefault(t => t.Name == "Medium").Id, TicketStatusId = context.TicketStatuses.FirstOrDefault(t => t.Name == "Assigned").Id, TicketTypeId = context.TicketTypes.FirstOrDefault(t => t.Name == "Defective").Id, }, new Ticket { ProjectId = cmsId, OwnerUserId = sbId, Title = "Seeded Ticket #5", Description = "Testing a seeded Ticket", Created = DateTime.Now, TicketPriorityId = context.TicketPriorities.FirstOrDefault(t => t.Name == "Medium").Id, TicketStatusId = context.TicketStatuses.FirstOrDefault(t => t.Name == "New UnAssigned").Id, TicketTypeId = context.TicketTypes.FirstOrDefault(t => t.Name == "Visual Bug").Id, }, new Ticket { ProjectId = cmsId, OwnerUserId = sbId, AssignedToUserId = dvId, Title = "Seeded Ticket #6", Description = "Testing a seeded Ticket", Created = DateTime.Now, TicketPriorityId = context.TicketPriorities.FirstOrDefault(t => t.Name == "Medium").Id, TicketStatusId = context.TicketStatuses.FirstOrDefault(t => t.Name == "Assigned").Id, TicketTypeId = context.TicketTypes.FirstOrDefault(t => t.Name == "Defective").Id, }); #endregion }
//public ActionResult Edit([Bind(Include = "Id,Title,Description,Created,Updated,ProjectId,TicketStatusId,TicketPriorityId,TicketTypeId,OwnerUserId,AssignedToUserId")] Ticket ticket) public async Task <ActionResult> Edit([Bind(Include = "Id,Title,Description,Created,Updated,ProjectId,TicketStatusId,TicketPriorityId,TicketTypeId,OwnerUserId,AssignedToUserId")] Ticket ticket) { //retrieve original ticket from database, but do not cache it in this dbcontext. This will be the "oldTicket" var oldTicket = this.db.Tickets.AsNoTracking().FirstOrDefault(t => t.Id == ticket.Id); if (ModelState.IsValid) { //Sets ticket status according to whether it's been assigned or not. // rewrite to use switch statement if (ticket.AssignedToUserId != null && ticket.TicketStatusId == 2) { ticket.TicketStatusId = 1; } if (ticket.AssignedToUserId == null && ticket.TicketStatusId == 1) { ticket.TicketStatusId = 2; if (User.IsInRole("Admin")) { ticket.AssignedToUserId = User.Identity.GetUserId(); } else { ticket.AssignedToUserId = ticket.Project.PMID; } } if (ticket.AssignedToUserId == null && ticket.TicketStatusId == 3) { //ticket.AssignedToUserId = User.Identity.GetUserId(); ticket.AssignedToUserId = ticket.Project.PMID; //this.db.Tickets.AsNoTracking().FirstOrDefault(t => t.Id == ticket.Id); } if (ticket.AssignedToUserId != null && ticket.OwnerUserId != null) { //Use ProjectsHelper to //add developer to project once they are assigned to a ticket ProjectsHelper phelper = new ProjectsHelper(); phelper.AddUserToProject(ticket.AssignedToUserId, ticket.ProjectId); phelper.AddUserToProject(ticket.OwnerUserId, ticket.ProjectId); } if (ticket.OwnerUserId == null) { ticket.OwnerUserId = User.Identity.GetUserId(); } ticket.Updated = DateTimeOffset.Now; db.Entry(ticket).State = EntityState.Modified; db.SaveChanges(); //ticketshelper to create the ticket history if (TicketsHelper.HasTicketChanged(oldTicket, ticket)) { TicketsHelper.AddTicketHistory(oldTicket, ticket); } //Send the relevant data to create notifications await this.tixHelper.GenerateNotifications(oldTicket, ticket); //return to ticket details so user can see updated changes. return(RedirectToAction("Details", "Tickets", new { id = ticket.Id })); } ViewBag.AssignedToUserId = new SelectList(db.Users, "Id", "FirstName", ticket.AssignedToUserId); ViewBag.OwnerUserId = new SelectList(db.Users, "Id", "FirstName", ticket.OwnerUserId); ViewBag.ProjectId = new SelectList(db.Projects, "Id", "Name", ticket.ProjectId); ViewBag.TicketPriorityId = new SelectList(db.TicketPrioritys, "Id", "Name", ticket.TicketPriorityId); ViewBag.TicketStatusId = new SelectList(db.TicketStatus, "Id", "Name", ticket.TicketStatusId); ViewBag.TicketTypeId = new SelectList(db.TicketTypes, "Id", "Name", ticket.TicketTypeId); return(View(ticket)); }
public DashboardModel(ProjectsHelper.UserModel userModel, ApplicationDbContext db) { // Load up the data for display on dashboard // For everyone, show Notifications... // // Get Notifications info... // var notifies = db.TicketNotifications.Where(n => n.UserId == userModel.User.Id && !n.HasBeenRead); NumNewNotifications = notifies.Count(); if (NumNewNotifications > 0) { MyNewNotifications = notifies .OrderBy(n => n.Created) .Take(MaxNotifications) .Select(n => new DashboardItem() { Id = n.Id, TicketId = n.TicketId, Type = n.Type, Date = n.Created }) .ToArray<DashboardItem>(); // Now, fill out Description field for each... for (int i = 0; i < MyNewNotifications.Length; i++) { var notice = db.TicketNotifications.Find(MyNewNotifications[i].Id); MyNewNotifications[i].Description = notice.ToDescription(); } } if (userModel.IsAdmin || userModel.IsGuest) { userModel.DashboardTitle = userModel.IsGuest ? "Dashboard - Guest" : "Dashboard - Admin"; } else if (userModel.IsPM) { userModel.DashboardTitle = "Dashboard - Project Manager"; } else if (userModel.IsDeveloper) { userModel.DashboardTitle = "Dashboard - Developer"; // // Get Projects info... // var projects = db.Users.Find(userModel.User.Id).Projects; NumProjects = projects.Count; if (NumProjects > 0) { MyProjects = db.Users.Find(userModel.User.Id) .Projects.Take(MaxTopProjects) .Select(p => new DashboardItem() { Id = p.Id, Name = p.Name, CountHours = p.Tickets.Sum(h => h.HoursToComplete), CountItems = p.Tickets.Count}) .ToArray<DashboardItem>(); } // // Get Tickets info... // var tickets = db.Tickets .Where(t => t.AssignedToDevId == userModel.User.Id && t.TicketStatusId != (int)TS.Status.Resolved && t.TicketStatusId >= (int)TS.Status.AssignedToDev); if ((NumActiveTickets = tickets.Count()) > 0) { // Get new tickets, then setup info on active tickets var newTickets = tickets.Where(t => t.TicketStatusId == (int)TS.Status.AssignedToDev); NumNewTickets = newTickets.Count(); MyNewTickets = newTickets .Take(MaxTopNewTickets) .Select(n => new DashboardItem() { Id = n.Id, Name = n.Title, Description = n.TicketType.Name + "-" + n.TicketPriority.Name + "-" + n.SkillRequired.Name, CountHours = n.HoursToComplete }) .ToArray<DashboardItem>(); // And get details on new tickets DashboardItem di = new DashboardItem("Newly assigned/to pull", "MyNew"); if (NumNewTickets > 0) { di.CountItems = NumNewTickets; di.CountHours = newTickets.Sum(t => t.HoursToComplete); } MyActiveTickets.Add(di); // Show total tickets in development di = new DashboardItem("In development", "MyInDevelopment"); var inDev = tickets.Where(t => t.TicketStatusId == (int)TS.Status.InDevelopment); if ((di.CountItems = inDev.Count()) > 0) di.CountHours = inDev.Sum(hrs => hrs.HoursToComplete); MyActiveTickets.Add(di); // Get the tickets according to due date/time DateTimeOffset now = DateTimeOffset.UtcNow; DateTimeOffset start, end; start = now.AddDays(-1); di = new DashboardItem("Overdue", "MyOverdue"); var due = tickets.Where(t => t.DueDate >= start && t.DueDate < now); if ((di.CountItems = due.Count()) > 0) di.CountHours = due.Sum(t => t.HoursToComplete); MyActiveTickets.Add(di); end = now.AddDays(1); di = new DashboardItem("Due within 24 hours", "MyDue24"); due = tickets.Where(t => t.DueDate >= now && t.DueDate < end); if ((di.CountItems = due.Count()) > 0) di.CountHours = due.Sum(t => t.HoursToComplete); MyActiveTickets.Add(di); di = new DashboardItem("Due within 7 days", "MyDue7"); end = now.AddDays(7); due = tickets.Where(t => t.DueDate >= now && t.DueDate < end); if ((di.CountItems = due.Count()) > 0) di.CountHours = due.Sum(t => t.HoursToComplete); MyActiveTickets.Add(di); di = new DashboardItem("Due within 30 days", "MyDue30"); end = now.AddDays(30); due = tickets.Where(t => t.DueDate >= now && t.DueDate < end); if ((di.CountItems = due.Count()) > 0) di.CountHours = due.Sum(t => t.HoursToComplete); MyActiveTickets.Add(di); // Get number of tickets in test... di = new DashboardItem("Sent to testing", "MyTesting"); due = tickets.Where(t => t.TicketStatusId >= (int)TS.Status.ReadyToTest); if ((di.CountItems = due.Count()) > 0) di.CountHours = due.Sum(t => t.HoursToComplete); MyActiveTickets.Add(di); } } else { // Do this for anybody... } }
protected override void Seed(BugTracker.Models.ApplicationDbContext context) { // This method will be called after migrating to the latest version. // You can use the DbSet<T>.AddOrUpdate() helper extension method // to avoid creating duplicate seed data. var roleManager = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(context)); if (!context.Roles.Any(r => r.Name == "MasterAdmin")) { roleManager.Create(new IdentityRole { Name = "MasterAdmin" }); } if (!context.Roles.Any(r => r.Name == "Admin")) { roleManager.Create(new IdentityRole { Name = "Admin" }); } if (!context.Roles.Any(r => r.Name == "Project Manager")) { roleManager.Create(new IdentityRole { Name = "Project Manager" }); } if (!context.Roles.Any(r => r.Name == "Developer")) { roleManager.Create(new IdentityRole { Name = "Developer" }); } if (!context.Roles.Any(r => r.Name == "Submitter")) { roleManager.Create(new IdentityRole { Name = "Submitter" }); } UserManager <ApplicationUser> userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(context)); if (!context.Users.Any(r => r.UserName == "*****@*****.**")) { ApplicationUser masterUser = new ApplicationUser() { DisplayName = "Master", UserName = "******", Email = "*****@*****.**", AvatarURL = "/Uploads/Master-joda-icon.png" }; userManager.Create(masterUser, "PassWord"); } if (!context.Users.Any(r => r.UserName == "*****@*****.**")) { ApplicationUser projMUser = new ApplicationUser() { DisplayName = "Project Manager", FirstName = "James", LastName = "Cooley", UserName = "******", Email = "*****@*****.**", AvatarURL = "/Uploads/cooleylink.JPEG" }; userManager.Create(projMUser, "PassWord"); } if (!context.Users.Any(r => r.UserName == "*****@*****.**")) { ApplicationUser devUser = new ApplicationUser() { DisplayName = "Developer", FirstName = "John", LastName = "Snow", UserName = "******", Email = "*****@*****.**", AvatarURL = "/img/profiles/a.jpg" }; userManager.Create(devUser, "PassWord"); } if (!context.Users.Any(r => r.UserName == "*****@*****.**")) { ApplicationUser subUser = new ApplicationUser() { DisplayName = "Submitter", UserName = "******", Email = "*****@*****.**", FirstName = "Ashley", LastName = "Singleton", AvatarURL = "/img/profiles/2.png" }; userManager.Create(subUser, "PassWord"); } context.SaveChanges(); //Initialize ApplicationUser maU = context.Users.FirstOrDefault(r => r.Email == "*****@*****.**"); if (maU != null) { userManager.AddToRole(maU.Id, "MasterAdmin"); } ApplicationUser pmU = context.Users.FirstOrDefault(r => r.Email == "*****@*****.**"); if (pmU != null) { userManager.AddToRole(pmU.Id, "Project Manager"); } ApplicationUser devU = context.Users.FirstOrDefault(r => r.Email == "*****@*****.**"); if (devU != null) { userManager.AddToRole(devU.Id, "Developer"); } ApplicationUser subU = context.Users.FirstOrDefault(r => r.Email == "*****@*****.**"); if (subU != null) { userManager.AddToRole(subU.Id, "Submitter"); } context.SaveChanges(); //demo users if (!context.Users.Any(r => r.UserName == "*****@*****.**")) { ApplicationUser demoadminUser = new ApplicationUser() { DisplayName = "Demo Admin", FirstName = "John", LastName = "Stewart", UserName = "******", Email = "*****@*****.**", AvatarURL = "/Uploads/Master-joda-icon.png" }; userManager.Create(demoadminUser, "PassWord"); } if (!context.Users.Any(r => r.UserName == "*****@*****.**")) { ApplicationUser demoprojectUser = new ApplicationUser() { DisplayName = "Demo Project Manager", FirstName = "Eric", LastName = "Temple", UserName = "******", Email = "*****@*****.**", AvatarURL = "/Uploads/Profile-512.png" }; userManager.Create(demoprojectUser, "PassWord"); } if (!context.Users.Any(r => r.UserName == "*****@*****.**")) { ApplicationUser demosubUser = new ApplicationUser() { DisplayName = "Demo Submitter", FirstName = "Malcom", LastName = "Mueller", UserName = "******", Email = "*****@*****.**", AvatarURL = "/Uploads/sub.png" }; userManager.Create(demosubUser, "PassWord"); } if (!context.Users.Any(r => r.UserName == "*****@*****.**")) { ApplicationUser demodevUser = new ApplicationUser() { DisplayName = "Demo Developer", FirstName = "Ashton", LastName = "Farmer", UserName = "******", Email = "*****@*****.**", AvatarURL = "/Uploads/profile-picture-icon-11.jpg" }; userManager.Create(demodevUser, "PassWord"); } context.SaveChanges(); //initialize demo users ApplicationUser demoadU = context.Users.FirstOrDefault(r => r.Email == "*****@*****.**"); if (demoadU != null) { userManager.AddToRole(demoadU.Id, "Admin"); } ApplicationUser demopmU = context.Users.FirstOrDefault(r => r.Email == "*****@*****.**"); if (demopmU != null) { userManager.AddToRole(demopmU.Id, "Project Manager"); } ApplicationUser demosubU = context.Users.FirstOrDefault(r => r.Email == "*****@*****.**"); if (demosubU != null) { userManager.AddToRole(demosubU.Id, "Submitter"); } ApplicationUser demodevU = context.Users.FirstOrDefault(r => r.Email == "*****@*****.**"); if (demodevU != null) { userManager.AddToRole(demodevU.Id, "Developer"); } context.SaveChanges(); //Seed name and descriptions tables context.TicketTypes.AddOrUpdate(t => t.Name, new TicketType { Name = "Bug", Description = "An error has occurred that resulted in either a database issue or file issue" }, new TicketType { Name = "Defect", Description = "An error has occurred that resulted in either an display issue or presentation issue" }, new TicketType { Name = "Feature Request", Description = "A client has called requesting new features" }, new TicketType { Name = "Documentation Request", Description = "A client has called requesting additional documentation" }, new TicketType { Name = "Training Request", Description = "A client has called in to request a schedule training appointment" }, new TicketType { Name = "Complaint", Description = "A client has called in to make a general complaint" }, new TicketType { Name = "Other", Description = "A call has been received that requires prompt follow up" }); context.SaveChanges(); context.TicketStatuses.AddOrUpdate(t => t.Name, new TicketStatus { Name = "New / Unassigned", Description = "New ticket that has not been assigned", Value = 0 }, new TicketStatus { Name = "Unassigned", Description = "Ticket that has not been assigned", Value = 0 }, new TicketStatus { Name = "Assigned", Description = "The ticket has been assigned", Value = 15 }, new TicketStatus { Name = "Assigned / In Progress", Description = "Ticket that has been assigned and in progress", Value = 40 }, new TicketStatus { Name = "Resolved", Description = "Completed Ticket by assigned developer", Value = 75 }, new TicketStatus { Name = "Archived", Description = "Ticket has been completed and approved by Manager", Value = 100 }); context.SaveChanges(); context.TicketPriorities.AddOrUpdate(t => t.Name, new TicketPriority { Name = "Low", Description = "Requires attention. Developers should complete if there are no Medium/High/Urgent priority tickets" }, new TicketPriority { Name = "Medium", Description = "Requires Normal attention. Developers should complete if there are no High/Urgent priority tickets" }, new TicketPriority { Name = "High", Description = "Requires Urgent attention. Developers should focus on completing before medium/low priority tickets" }, new TicketPriority { Name = "URGENT", Description = "Highest Demand. Developers should abandon all unfinished task and focus on current ticket" }); context.Projects.AddOrUpdate(t => t.Name, new Project { Name = "Portfolio", Description = "This project is a collection of projects in the process of development. Currently has bootstrap exercises, access to Blogsite, BugTracker, and Cash Portal" }, new Project { Name = "Blog Site", Description = "This project is a display of blogs that accepts and allows users to comment on post. Admin of site can also create post. Displays the ability to use encapsulation,inheritance, interfaces and etc" }, new Project { Name = "BugTracker", Description = "This project is a display of all previous project skill-set. This application can be use in procurement processes or to track the status of issues amongst levels of authorization" }, new Project { Name = "Cash Portal", Description = "This project is a budget application. Designed to give users the ability to create budgets for their household" }); context.SaveChanges(); var blogSiteId = context.Projects.FirstOrDefault(p => p.Name == "Blog Site").Id; var portfolioId = context.Projects.FirstOrDefault(p => p.Name == "Portfolio").Id; var bugTradkerId = context.Projects.FirstOrDefault(p => p.Name == "BugTracker").Id; var cashportalId = context.Projects.FirstOrDefault(p => p.Name == "Cash Portal").Id; var projectHelper = new ProjectsHelper(); projectHelper.AddUserToProject(demopmU.Id, blogSiteId); projectHelper.AddUserToProject(demodevU.Id, blogSiteId); projectHelper.AddUserToProject(demosubU.Id, blogSiteId); projectHelper.AddUserToProject(pmU.Id, blogSiteId); projectHelper.AddUserToProject(devU.Id, blogSiteId); projectHelper.AddUserToProject(subU.Id, blogSiteId); projectHelper.AddUserToProject(pmU.Id, cashportalId); projectHelper.AddUserToProject(devU.Id, cashportalId); projectHelper.AddUserToProject(subU.Id, cashportalId); projectHelper.AddUserToProject(demopmU.Id, portfolioId); projectHelper.AddUserToProject(demodevU.Id, portfolioId); projectHelper.AddUserToProject(demosubU.Id, portfolioId); projectHelper.AddUserToProject(demopmU.Id, bugTradkerId); projectHelper.AddUserToProject(demodevU.Id, bugTradkerId); projectHelper.AddUserToProject(demosubU.Id, bugTradkerId); context.SaveChanges(); context.Tickets.AddOrUpdate( p => p.Title, new Ticket { ProjectId = blogSiteId, OwnerUserId = demosubU.Id, Title = "New Things", Description = "Clients have requested that the blog site project have more functionality", Created = DateTime.Now, TicketPriorityId = context.TicketPriorities.FirstOrDefault(t => t.Name == "Medium").Id, TicketStatusId = context.TicketStatuses.FirstOrDefault(t => t.Name == "New / Unassigned").Id, TicketTypeId = context.TicketTypes.FirstOrDefault(t => t.Name == "Feature Request").Id, }, new Ticket { ProjectId = portfolioId, OwnerUserId = demosubU.Id, AssignedToUserId = demodevU.Id, Title = "Notify", Description = "Clients have requested that the portfolio be updated with new projects", Created = DateTime.Now, TicketPriorityId = context.TicketPriorities.FirstOrDefault(t => t.Name == "Medium").Id, TicketStatusId = context.TicketStatuses.FirstOrDefault(t => t.Name == "Assigned").Id, TicketTypeId = context.TicketTypes.FirstOrDefault(t => t.Name == "Feature Request").Id, }, new Ticket { ProjectId = bugTradkerId, OwnerUserId = demosubU.Id, AssignedToUserId = demodevU.Id, Title = "Estimated Time of Publish?", Description = "Clients Wants to be notified when Developers have finish the first version of the release", Created = DateTime.Now, TicketPriorityId = context.TicketPriorities.FirstOrDefault(t => t.Name == "High").Id, TicketStatusId = context.TicketStatuses.FirstOrDefault(t => t.Name == "Assigned / In Progress").Id, TicketTypeId = context.TicketTypes.FirstOrDefault(t => t.Name == "Other").Id, }); context.SaveChanges(); }
protected override void Seed(ApplicationDbContext context) { // This method will be called after migrating to the latest version. // You can use the DbSet<T>.AddOrUpdate() helper extension method // to avoid creating duplicate seed data. #region var roleManager = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(context)); if (!context.Roles.Any(r => r.Name == "Admin")) { roleManager.Create(new IdentityRole { Name = "Admin" }); } if (!context.Roles.Any(r => r.Name == "Project Manager")) { roleManager.Create(new IdentityRole { Name = "Project Manager" }); } if (!context.Roles.Any(r => r.Name == "Developer")) { roleManager.Create(new IdentityRole { Name = "Developer" }); } if (!context.Roles.Any(r => r.Name == "Submitter")) { roleManager.Create(new IdentityRole { Name = "Submitter" }); } #endregion var userManager = new UserManager <ApplicationUser>( new UserStore <ApplicationUser>(context)); if (!context.Users.Any(u => u.Email == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Bryant", LastName = "Caldwell", DisplayName = "C-Wellionaire" }, "Abc&123"); } if (!context.Users.Any(u => u.Email == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Joe", LastName = "Schmo", DisplayName = "Twich" }, "Abc&123"); } if (!context.Users.Any(u => u.Email == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Joe", LastName = "Schmo", DisplayName = "Twich" }, "Abc&123"); } //Introduction to the Demo Users.... if (!context.Users.Any(u => u.Email == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Demo", LastName = "Admin", DisplayName = "Demo Admin" }, WebConfigurationManager.AppSettings["DemoUserPassword"]); } if (!context.Users.Any(u => u.Email == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Demo", LastName = "Project Manager", DisplayName = "The PM" }, WebConfigurationManager.AppSettings["DemoUserPassword"]); } if (!context.Users.Any(u => u.Email == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Demo", LastName = "Developer", DisplayName = "The Dev" }, WebConfigurationManager.AppSettings["DemoUserPassword"]); } if (!context.Users.Any(u => u.Email == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Demo", LastName = "Submitter", DisplayName = "The Sub" }, WebConfigurationManager.AppSettings["DemoUserPassword"]); } var adminId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(adminId, "Admin"); adminId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(adminId, "Admin"); var pmId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(pmId, "Project Manager"); pmId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(pmId, "Project Manager"); var subId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(subId, "Submitter"); var devId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(devId, "Developer"); context.Projects.AddOrUpdate( p => p.Name, new Project { Name = "Spock IT Blog", Description = "This is the Spock Blog project that is now out in the wild.", Created = DateTime.Now }, new Project { Name = "Spock Portfolio", Description = "This is the Portfolio project that is now out in the wild.", Created = DateTime.Now }, new Project { Name = "Spock BugTracker", Description = "This is the Spock BugTracker project that is now out in the wild.", Created = DateTime.Now } ); context.SaveChanges(); #region Project Assignment var blogProjectId = context.Projects.FirstOrDefault(p => p.Name == "Spock IT Blog").Id; var bugTrackerProjectId = context.Projects.FirstOrDefault(p => p.Name == "Spock BugTracker").Id; var projectHelper = new ProjectsHelper(); //Assign all three users to the Blog project projectHelper.AddUserToProject(pmId, blogProjectId); projectHelper.AddUserToProject(devId, blogProjectId); projectHelper.AddUserToProject(subId, blogProjectId); //Assign all three users to the Blog project projectHelper.AddUserToProject(pmId, bugTrackerProjectId); projectHelper.AddUserToProject(devId, bugTrackerProjectId); projectHelper.AddUserToProject(subId, bugTrackerProjectId); #endregion #region Priority, Status & Type creation (required FK's for a Ticket) context.TicketPriorities.AddOrUpdate( t => t.Name, new TicketPriority { Name = "Immediate", Description = "Highest priority level requiring immediate action" }, new TicketPriority { Name = "High", Description = "A high priority level requiring quick action" }, new TicketPriority { Name = "Medium", Description = "" }, new TicketPriority { Name = "Low", Description = "" }, new TicketPriority { Name = "None", Description = "" } ); context.TicketStatuses.AddOrUpdate( t => t.Name, new TicketStatus { Name = "New / UnAssigned", Description = "" }, new TicketStatus { Name = "UnAssigned", Description = "" }, new TicketStatus { Name = "New / Assigned", Description = "" }, new TicketStatus { Name = "Assigned", Description = "" }, new TicketStatus { Name = "In Progress", Description = "" }, new TicketStatus { Name = "Completed", Description = "" }, new TicketStatus { Name = "Archived", Description = "" } ); context.TicketTypes.AddOrUpdate( t => t.Name, new TicketType { Name = "Bug", Description = "An error has occurred that resulted in either the application crashing or the user seeing error information" }, new TicketType { Name = "Defect", Description = "An error has occurred that resulted in either a miscalculation or an in correct workflow" }, new TicketType { Name = "Feature Request", Description = "A client has called in asking for new functionality in an existing application" }, new TicketType { Name = "Documentation Request", Description = "A client has called in asking for new documentation to be created for the existing application" }, new TicketType { Name = "Training Request", Description = "A client has called in asking to schedule a training session" }, new TicketType { Name = "Complaint", Description = "A client has called in to make a general complaint about our application" }, new TicketType { Name = "Other", Description = "A call has been received that requires follow up but is outside the usual parameters for a request" } ); context.SaveChanges(); #endregion #region Ticket creation context.Tickets.AddOrUpdate( p => p.Title, //1 unassigned Bug on the Blog project //1 assigned Defect on the Blog project new Ticket { ProjectId = blogProjectId, OwnerUserId = subId, Title = "Seeded Ticket #1", Description = "Testing a seeded Ticket", Created = DateTime.Now, TicketPriorityId = context.TicketPriorities.FirstOrDefault(t => t.Name == "Medium").Id, TicketStatusId = context.TicketStatuses.FirstOrDefault(t => t.Name == "New / UnAssigned").Id, TicketTypeId = context.TicketTypes.FirstOrDefault(t => t.Name == "Bug").Id, }, new Ticket { ProjectId = blogProjectId, OwnerUserId = subId, AssignedToUserId = devId, Title = "Seeded Ticket #2", Description = "Testing a seeded Ticket", Created = DateTime.Now, TicketPriorityId = context.TicketPriorities.FirstOrDefault(t => t.Name == "Medium").Id, TicketStatusId = context.TicketStatuses.FirstOrDefault(t => t.Name == "New / Assigned").Id, TicketTypeId = context.TicketTypes.FirstOrDefault(t => t.Name == "Defect").Id, }, //1 unassigned Bug on the BugTracker //1 assigned Defect on the BugTracker //1 unassigned Bug on the Blog project //1 assigned Defect on the Blog project new Ticket { ProjectId = bugTrackerProjectId, OwnerUserId = subId, Title = "Seeded Ticket #3", Description = "Testing a seeded Ticket", Created = DateTime.Now, TicketPriorityId = context.TicketPriorities.FirstOrDefault(t => t.Name == "Medium").Id, TicketStatusId = context.TicketStatuses.FirstOrDefault(t => t.Name == "New / UnAssigned").Id, TicketTypeId = context.TicketTypes.FirstOrDefault(t => t.Name == "Bug").Id, }, new Ticket { ProjectId = bugTrackerProjectId, OwnerUserId = subId, AssignedToUserId = devId, Title = "Seeded Ticket #4", Description = "Testing a seeded Ticket", Created = DateTime.Now, TicketPriorityId = context.TicketPriorities.FirstOrDefault(t => t.Name == "Medium").Id, TicketStatusId = context.TicketStatuses.FirstOrDefault(t => t.Name == "New / Assigned").Id, TicketTypeId = context.TicketTypes.FirstOrDefault(t => t.Name == "Defect").Id, }); }
protected override void Seed(BugTracker.Models.ApplicationDbContext context) { var roleManager = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(context)); #region Create roles if (!context.Roles.Any(r => r.Name == "Admin")) { roleManager.Create(new IdentityRole { Name = "Admin" }); } if (!context.Roles.Any(r => r.Name == "Project Manager")) { roleManager.Create(new IdentityRole { Name = "Project Manager" }); } if (!context.Roles.Any(r => r.Name == "Developer")) { roleManager.Create(new IdentityRole { Name = "Developer" }); } if (!context.Roles.Any(r => r.Name == "Submitter")) { roleManager.Create(new IdentityRole { Name = "Submitter" }); } if (!context.Roles.Any(r => r.Name == "DemoAdmin")) { roleManager.Create(new IdentityRole { Name = "DemoAdmin" }); } if (!context.Roles.Any(r => r.Name == "DemoPM")) { roleManager.Create(new IdentityRole { Name = "DemoPM" }); } if (!context.Roles.Any(r => r.Name == "DemoDeveloper")) { roleManager.Create(new IdentityRole { Name = "DemoDeveloper" }); } if (!context.Roles.Any(r => r.Name == "DemoSubmitter")) { roleManager.Create(new IdentityRole { Name = "DemoSubmitter" }); } #endregion #region Create users var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(context)); if (!context.Users.Any(u => u.Email == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "christophe", LastName = "madoz", DisplayName = "Administrator" }, WebConfigurationManager.AppSettings["my password"]); } if (!context.Users.Any(u => u.Email == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Pascal", LastName = "madoz", DisplayName = "Project Manager" }, "Abc&123"); } if (!context.Users.Any(u => u.Email == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Alain", LastName = "madoz", DisplayName = "Developer" }, "Abc&123"); } if (!context.Users.Any(u => u.Email == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "John", LastName = "madoz", DisplayName = "Submitter" }, "Abc&123"); } if (!context.Users.Any(u => u.Email == "*****@*****.**")) { userManager.Create(new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "Steve", LastName = "clayton", DisplayName = "steve Clayton" }, "Abc&123"); } #endregion #region Add users to roles var adminId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(adminId, "Admin"); var projectMangerId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(projectMangerId, "Project Manager"); var developerId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(developerId, "Developer"); var submitterId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(submitterId, "Submitter"); var userId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(userId, "Submitter"); #endregion #region loading lookup date context.TicketPriorities.AddOrUpdate(item => item.Name, new TicketPriority() { Name = "High", Description = "The issue needs to be resolve within 3 days." }, new TicketPriority() { Name = "Low", Description = "The issue can be resolved within 2 weeks." }, new TicketPriority() { Name = "Medium", Description = "The issue can be resolved within 1 week." }, new TicketPriority() { Name = "Urgent", Description = "Crutial problem with the system which needs to be resolve within 1 day." } ); context.TicketStatus.AddOrUpdate(t => t.Name, new TicketStatus() { Name = "open", Description = "A newly created or simply unassinged ticket" }, new TicketStatus() { Name = "Assigned", Description = "A ticket that has been assigned but not yet started" }, new TicketStatus() { Name = "In Progress", Description = "A ticket that has been assigned and is currently being working on" }, new TicketStatus() { Name = "Resolved", Description = "A ticket that has been resolved." }, new TicketStatus() { Name = "Archived", Description = "A ticket that has been archived." } ); context.TicketTypes.AddOrUpdate(t => t.Name, new TicketType() { Name = "Defect", Description = "A defect in the software has been identified" }, new TicketType() { Name = "Feature Request", Description = "I user has made a request to add a feature to the software." }, new TicketType() { Name = "Training request", Description = "A new employee has made a request to get a training for a specific feature in the system." } ); #endregion #region Project Creation context.Projects.AddOrUpdate( p => p.Name, new Project() { Name = "Blog Project", Description = "This is the Blog project ready for use.", Created = DateTime.Now }, new Project() { Name = "Portfolio", Description = "This is the Portfolio project which is ready for use.", Created = DateTime.Now }, new Project() { Name = "BugTracker", Description = "This is the BugTracker project.", Created = DateTime.Now } ); context.SaveChanges(); #endregion #region Project Assignment var blogProjectId = context.Projects.FirstOrDefault(p => p.Name == "Blog Project").Id; var bugTrackerProjectId = context.Projects.FirstOrDefault(p => p.Name == "BugTracker").Id; var projectHelper = new ProjectsHelper(); //Assign all three users to the Blog project projectHelper.AddUserToProject(adminId, blogProjectId); projectHelper.AddUserToProject(projectMangerId, blogProjectId); projectHelper.AddUserToProject(developerId, blogProjectId); //Assign all three users to the Blog project projectHelper.AddUserToProject(adminId, bugTrackerProjectId); projectHelper.AddUserToProject(projectMangerId, bugTrackerProjectId); projectHelper.AddUserToProject(developerId, bugTrackerProjectId); #endregion #region Ticket creation context.Tickets.AddOrUpdate( p => p.Title, new Ticket { ProjectId = blogProjectId, OwnerUserId = submitterId, Title = "Ticket Test one", Description = "Ticket project one", Created = DateTime.Now, TicketPriorityId = context.TicketPriorities.FirstOrDefault(t => t.Name == "High").Id, TicketStatusId = context.TicketStatus.FirstOrDefault(t => t.Name == "open").Id, TicketTypeId = context.TicketTypes.FirstOrDefault(t => t.Name == "Defect").Id, }, new Ticket { ProjectId = blogProjectId, OwnerUserId = submitterId, AssignedToUserId = developerId, Title = "Ticket Test Two", Description = "Ticket project one with issues", Created = DateTime.Now, TicketPriorityId = context.TicketPriorities.FirstOrDefault(t => t.Name == "Medium").Id, TicketStatusId = context.TicketStatus.FirstOrDefault(t => t.Name == "In Progress").Id, TicketTypeId = context.TicketTypes.FirstOrDefault(t => t.Name == "Defect").Id, }, new Ticket { ProjectId = bugTrackerProjectId, OwnerUserId = submitterId, Title = "Ticket Test Three", Description = "Ticket project one with issues", Created = DateTime.Now, TicketPriorityId = context.TicketPriorities.FirstOrDefault(t => t.Name == "Urgent").Id, TicketStatusId = context.TicketStatus.FirstOrDefault(t => t.Name == "open").Id, TicketTypeId = context.TicketTypes.FirstOrDefault(t => t.Name == "Defect").Id, }, new Ticket { ProjectId = bugTrackerProjectId, OwnerUserId = submitterId, AssignedToUserId = developerId, Title = "Ticket Test Four", Description = "Ticket project one with issues", Created = DateTime.Now, TicketPriorityId = context.TicketPriorities.FirstOrDefault(t => t.Name == "Low").Id, TicketStatusId = context.TicketStatus.FirstOrDefault(t => t.Name == "Resolved").Id, TicketTypeId = context.TicketTypes.FirstOrDefault(t => t.Name == "Defect").Id, }); #endregion }