public async Task <IActionResult> IssueDetails(int issueId) { var issue = _issueRepository.GetIssue(issueId); Global.ProjectId = issue.AssociatedProject; var project = _projectRepository.GetProject(issue.AssociatedProject); Global.Project = project; var userId = userManager.GetUserId(User); var currentUser = await userManager.FindByIdAsync(userId); var userClaims = await userManager.GetClaimsAsync(currentUser); Global.globalCurrentUserClaims = userClaims.ToList(); var IsUserLevel = ClaimsLevel.IsUser(userClaims.ToList(), issue.AssociatedProject); if (IsUserLevel == false) { return(RedirectToAction("AccessDenied", "Account")); } var screenshots = _issueRepository.ScreenShots(issueId); var projectName = project.ProjectName; var comments = _issueRepository.Comments(issueId); var issueHistory = _issueRepository.GetIssueHistories(issueId); issue.Comments = comments; var users = new List <IdentityUser>(); var projectUsers = new List <string>(); projectUsers.Add(project.OwnerId); if (project.UsersAssigned != null) { projectUsers.AddRange(project.UsersAssigned.Split(" ").ToList()); } foreach (var uId in projectUsers) { var user = await userManager.FindByIdAsync(uId); if (user != null && !users.Contains(user)) { users.Add(user); } } var viewModel = new IssueDetailsViewModel { Issue = issue, IssueHistories = issueHistory, ProjectId = issue.AssociatedProject, CurrentUserName = User.Identity.Name, ProjectName = project.ProjectName, ProjectUsers = users, Source = screenshots, Updated = 0 }; return(View(viewModel)); }