// GET: projects/5 public ActionResult Show(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Project project = db.Projects.Find(id); if (project == null) { return(HttpNotFound()); } List <TicketViewModel> projectTicketViewModels = new List <TicketViewModel>(); foreach (var item in project.Tickets.ToList()) { projectTicketViewModels.Add(new TicketViewModel(item)); } List <EditUserViewModel> projectMembers = new List <EditUserViewModel>(); var userIDs = db.UserProjectRoles.Where(u => u.ProjectID == id).Select(u => u.UserID); var users = db.AspNetUsers; foreach (var item in userIDs.ToList()) { projectMembers.Add(new EditUserViewModel(users.Find(item))); } DetailsProjectViewModel model = new DetailsProjectViewModel(project, projectTicketViewModels, projectMembers); return(View(model)); }
public ActionResult DetailsOfProject(string id) { if (id == null) { return(RedirectToAction("Index", "Main")); } var currentUserId = User.Identity.GetUserId(); bool specialCase; if (User.IsInRole("Admin") || User.IsInRole("Project Manager")) { specialCase = true; } else { specialCase = false; } var project = DbContext.Projects .FirstOrDefault( p => p.Id == id && (p.Users.Any(r => r.Id == currentUserId) || specialCase == true)); if (project == null || project.Archived == true) { return(RedirectToAction("Index", "Main")); } var model = new DetailsProjectViewModel(); model.Id = project.Id; model.ProjectName = project.ProjectName; model.ProjectDetails = project.ProjectDetails; model.MemberCount = project.Users.Count(); model.TicketCount = project.TicketCount; model.DateCreated = project.DateCreated; model.DateUpdated = project.DateUpdated; model.UserName = project.User.UserName; return(View(model)); }