// GET: Projects public ActionResult Index() { var model = new List <ProjectIndexDetails>(); var projects = db.Projects.ToList(); foreach (var project in projects) { ProjectIndexDetails newProject = new ProjectIndexDetails(); newProject.Project = project; if (project.ProjectManagerId != null) { string firstName = db.Users.FirstOrDefault(u => u.Id == project.ProjectManagerId).FirstName; string lastName = db.Users.FirstOrDefault(u => u.Id == project.ProjectManagerId).LastName; newProject.ProjectManagerName = $"{firstName} {lastName}"; } else { newProject.ProjectManagerName = "Unassigned"; } model.Add(newProject); } return(View(model)); }
// GET: Projects with authorization public ActionResult UserProjects() //Based off of user tickets in the ticket controller. UserProjectsViewModel is based off UserRolesViewModel { var userProjectsViewModel = new UserProjectsViewModel(); var userId = User.Identity.GetUserId(); if (User.IsInRole("Admin")) { var projects = db.Projects.Where(p => p.Users.Any(u => u.Id == userId)).ToList(); var model = new List <ProjectIndexDetails>(); foreach (var project in projects) { ProjectIndexDetails newProject = new ProjectIndexDetails(); newProject.Project = project; if (project.ProjectManagerId != null) { string firstName = db.Users.FirstOrDefault(u => u.Id == project.ProjectManagerId).FirstName; string lastName = db.Users.FirstOrDefault(u => u.Id == project.ProjectManagerId).LastName; newProject.ProjectManagerName = $"{firstName} {lastName}"; } else { newProject.ProjectManagerName = "Unassigned"; } model.Add(newProject); } userProjectsViewModel.AdminProjs = model; } if (User.IsInRole("ProjectManager")) { var projects = db.Projects.Where(p => p.ProjectManagerId == userId).ToList(); var model = new List <ProjectIndexDetails>(); foreach (var project in projects) { ProjectIndexDetails newProject = new ProjectIndexDetails(); newProject.Project = project; if (project.ProjectManagerId != null) { string firstName = db.Users.FirstOrDefault(u => u.Id == project.ProjectManagerId).FirstName; string lastName = db.Users.FirstOrDefault(u => u.Id == project.ProjectManagerId).LastName; newProject.ProjectManagerName = $"{firstName} {lastName}"; } else { newProject.ProjectManagerName = "Unassigned"; } model.Add(newProject); } userProjectsViewModel.ProjectManProjs = model; } if (User.IsInRole("Developer")) { var projects = db.Projects.Where(p => p.Users.Any(u => u.Id == userId)).ToList(); var model = new List <ProjectIndexDetails>(); foreach (var project in projects) { ProjectIndexDetails newProject = new ProjectIndexDetails(); newProject.Project = project; if (project.ProjectManagerId != null) { string firstName = db.Users.FirstOrDefault(u => u.Id == project.ProjectManagerId).FirstName; string lastName = db.Users.FirstOrDefault(u => u.Id == project.ProjectManagerId).LastName; newProject.ProjectManagerName = $"{firstName} {lastName}"; } else { newProject.ProjectManagerName = "Unassigned"; } model.Add(newProject); } userProjectsViewModel.DeveloperProjs = model; } if (User.IsInRole("Submitter")) { var projects = db.Projects.Where(p => p.Users.Any(u => u.Id == userId)).ToList(); var model = new List <ProjectIndexDetails>(); foreach (var project in projects) { ProjectIndexDetails newProject = new ProjectIndexDetails(); newProject.Project = project; if (project.ProjectManagerId != null) { string firstName = db.Users.FirstOrDefault(u => u.Id == project.ProjectManagerId).FirstName; string lastName = db.Users.FirstOrDefault(u => u.Id == project.ProjectManagerId).LastName; newProject.ProjectManagerName = $"{firstName} {lastName}"; } else { newProject.ProjectManagerName = "Unassigned"; } model.Add(newProject); } userProjectsViewModel.SubmitterProjs = model; } return(View(userProjectsViewModel)); }