public ActionResult ProjectWizard() { ViewBag.ProjectManagerId = new SelectList(rolesHelper.UsersInRole("Project Manager"), "Id", "FullName"); ViewBag.DeveloperIds = new MultiSelectList(rolesHelper.UsersInRole("Developer"), "Id", "FullName"); ViewBag.SubmitterIds = new MultiSelectList(rolesHelper.UsersInRole("Submitter"), "Id", "FullName"); ViewBag.Errors = ""; var model = new ProjectWizardVM(); return(View(model)); }
public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Project project = db.Projects.Find(id); ViewBag.ProjectManagerId = new SelectList(rolesHelper.UsersInRole("ProjectManager"), "Id", "FullName"); if (project == null) { return(HttpNotFound()); } return(View(project)); }
// GET: Tickets/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Ticket ticket = db.Tickets.Find(id); if (ticket == null) { return(HttpNotFound()); } ViewBag.DeveloperId = new SelectList(rolesHelper.UsersInRole("Developer"), "Id", "FirstName", ticket.DeveloperId); ViewBag.ProjectId = new SelectList(db.Projects, "Id", "Name", ticket.ProjectId); ViewBag.SubmitterId = new SelectList(db.Users, "Id", "FirstName", ticket.SubmitterId); ViewBag.TicketPriorityId = new SelectList(db.TicketPriorities, "Id", "Name", ticket.TicketPriorityId); ViewBag.TicketStatusId = new SelectList(db.TicketStatus, "Id", "Name", ticket.TicketStatusId); ViewBag.TicketTypeId = new SelectList(db.TicketType, "Id", "Name", ticket.TicketTypeId); return(View(ticket)); }
protected override void Seed(IssueTracker.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 == "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 == "Guest")) { roleManager.Create(new IdentityRole { Name = "Guest" }); } #endregion #region Users Creation var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(context)); var DemoAdminPassword = WebConfigurationManager.AppSettings["DemoAdminPassword"]; var DemoPMPassword = WebConfigurationManager.AppSettings["DemoPMPassword"]; var DemoPM2Password = WebConfigurationManager.AppSettings["DemoPM2Password"]; var DemoDevPassword = WebConfigurationManager.AppSettings["DemoDevPassword"]; var DemoDev2Password = WebConfigurationManager.AppSettings["DemoDev2Password"]; var DemoSubPassword = WebConfigurationManager.AppSettings["DemoSubPassword"]; var DemoSub2Password = WebConfigurationManager.AppSettings["DemoSub2Password"]; if (!context.Users.Any(u => u.Email == "*****@*****.**")) { userManager.Create(new ApplicationUser() { Email = "*****@*****.**", UserName = "******", FirstName = "Admiral", LastName = "Grace Hopper", AvatarPath = "/Avatars/AdmHopperAvatar40x40.png", LargeAvatarPath = "/Avatars/AdmiralHopper.png" }, DemoAdminPassword);; var userId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(userId, "Admin"); } ; if (!context.Users.Any(u => u.Email == "*****@*****.**")) { userManager.Create(new ApplicationUser() { Email = "*****@*****.**", UserName = "******", FirstName = "Kamilah", LastName = "Taylor", AvatarPath = "/Avatars/KamilahTAvatar40x40.png" }, DemoPMPassword); var userId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(userId, "Project Manager"); } ; if (!context.Users.Any(u => u.Email == "*****@*****.**")) { userManager.Create(new ApplicationUser() { Email = "*****@*****.**", UserName = "******", FirstName = "Katherine", LastName = "Goble Johnson", AvatarPath = "/Avatars/KathGJnsnAvatar40x40.png", LargeAvatarPath = "/Avatars/KatherineJohnson.png" }, DemoPM2Password); var userId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(userId, "Project Manager"); } ; if (!context.Users.Any(u => u.Email == "*****@*****.**")) { userManager.Create(new ApplicationUser() { Email = "*****@*****.**", UserName = "******", FirstName = "Maria", LastName = "Gutierrez", AvatarPath = "/Avatars/MGutierrezAvatar40x40.png" }, DemoDevPassword); var userId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(userId, "Developer"); } ; if (!context.Users.Any(u => u.Email == "*****@*****.**")) { userManager.Create(new ApplicationUser() { Email = "*****@*****.**", UserName = "******", FirstName = "Dorothy", LastName = "Vaughan", AvatarPath = "/Avatars/DorothyVaughanAvatar40x40.png", LargeAvatarPath = "/Avatars/DorothyVaughn.png" }, DemoDev2Password); var userId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(userId, "Developer"); } ; if (!context.Users.Any(u => u.Email == "*****@*****.**")) { userManager.Create(new ApplicationUser() { Email = "*****@*****.**", UserName = "******", FirstName = "Dr.", LastName = "Jamika Burge", AvatarPath = "/Avatars/DrBurgeAvatar40x40.png" }, DemoSubPassword); var userId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(userId, "Submitter"); } ; if (!context.Users.Any(u => u.Email == "*****@*****.**")) { userManager.Create(new ApplicationUser() { Email = "*****@*****.**", UserName = "******", FirstName = "Mary", LastName = "Jackson", AvatarPath = "/Avatars/MaryJacksonAvatar40x40.png", LargeAvatarPath = "/Avatars/MaryJackson.png" }, DemoSub2Password); var userId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(userId, "Submitter"); } ; #endregion #region Role Assignment var adminId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(adminId, "Admin"); var projId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(projId, "Project Manager"); var projId2 = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(projId2, "Project Manager"); var devId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(devId, "Developer"); var devId2 = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(devId2, "Developer"); var subId = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(subId, "Submitter"); var subId2 = userManager.FindByEmail("*****@*****.**").Id; userManager.AddToRole(subId2, "Submitter"); #endregion context.SaveChanges(); #region TicketType Seed context.TicketTypes.AddOrUpdate( tt => tt.Name, new TicketType() { Name = "Software" }, new TicketType() { Name = "Hardware" }, new TicketType() { Name = "UI" }, new TicketType() { Name = "Defect" }, new TicketType() { Name = "Feature Request" }, new TicketType() { Name = "Other" } ); #endregion #region TicketPriority Seed context.TicketPriorities.AddOrUpdate( tp => tp.Name, new TicketPriority() { Name = "Low" }, new TicketPriority() { Name = "Medium" }, new TicketPriority() { Name = "High" }, new TicketPriority() { Name = "On Hold" } ); #endregion #region TicketStatus Seed context.TicketStatuses.AddOrUpdate( ts => ts.Name, new TicketStatus() { Name = "Open" }, new TicketStatus() { Name = "Assigned" }, new TicketStatus() { Name = "Resolved" }, new TicketStatus() { Name = "Reopened" }, new TicketStatus() { Name = "Archived" } ); #endregion #region Project Seed context.Projects.AddOrUpdate( p => p.Name, new Project() { Name = "SEO Crawler", Created = DateTime.Now.AddDays(-60), IsArchived = true }, new Project() { Name = "eCommerce Build", Created = DateTime.Now.AddDays(-45) }, new Project() { Name = "Distance Learning Build", Created = DateTime.Now.AddDays(-30) }, new Project() { Name = "Podcasting Integration", Created = DateTime.Now.AddDays(-15) }, new Project() { Name = "Federal Contracting Dashboard", Created = DateTime.Now.AddDays(-7) } ); #endregion context.SaveChanges(); #region Ticket Seed PREP List <Ticket> ticketList = new List <Ticket>(); List <ApplicationUser> projectManagers = new List <ApplicationUser>(); List <ApplicationUser> developers = new List <ApplicationUser>(); List <ApplicationUser> submitters = new List <ApplicationUser>(); projectManagers.AddRange(rolesHelper.UsersInRole("Project Manager")); developers.AddRange(rolesHelper.UsersInRole("Developer")); submitters.AddRange(rolesHelper.UsersInRole("Submitter")); #endregion #region Assign Users to Projects BY ROLE foreach (var project in context.Projects) { foreach (var user in rolesHelper.UsersInRole("Admin")) { projectHelper.AddUserToProject(user.Id, project.Id); } projectHelper.AddUserToProject(projectManagers[random.Next(projectManagers.Count)].Id, project.Id); var firstDev = developers[random.Next(developers.Count)].Id; var secondDev = developers[random.Next(developers.Count)].Id; while (firstDev == secondDev) { secondDev = developers[random.Next(developers.Count)].Id; } projectHelper.AddUserToProject(firstDev, project.Id); projectHelper.AddUserToProject(secondDev, project.Id); var firstSub = submitters[random.Next(submitters.Count)].Id; var secondSub = submitters[random.Next(submitters.Count)].Id; while (firstSub == secondSub) { secondSub = submitters[random.Next(submitters.Count)].Id; } projectHelper.AddUserToProject(firstSub, project.Id); projectHelper.AddUserToProject(secondSub, project.Id); } #endregion #region Ticket Seed foreach (var project in context.Projects.ToList()) { projectManagers = projectHelper.ListUsersOnProjectInRole("Project Manager", project.Id); developers = projectHelper.ListUsersOnProjectInRole("Developer", project.Id); submitters = projectHelper.ListUsersOnProjectInRole("Submitter", project.Id); foreach (var type in context.TicketTypes.ToList()) { foreach (var status in context.TicketStatuses.ToList()) { foreach (var priority in context.TicketPriorities.ToList()) { var developerId = developers[random.Next(developers.Count)].Id; if (status.Name == "Open") { developerId = null; } var resolved = false; var archived = false; if (status.Name == "Resolved") { resolved = true; } if (status.Name == "Archived" || project.IsArchived) { archived = true; } var newTicket = new Ticket() { ProjectId = project.Id, TicketPriorityId = priority.Id, TicketTypeId = type.Id, TicketStatusId = status.Id, SubmitterId = submitters[random.Next(submitters.Count)].Id, DeveloperId = developerId, Created = DateTime.Now, Issue = $"Seeded issue on the {project.Name} project.", IssueDescription = $"Issue description for the seeded ticket.", IsResolved = resolved, IsArchived = archived }; ticketList.Add(newTicket); } } } } context.Tickets.AddRange(ticketList); context.SaveChanges(); #endregion }