Exemplo n.º 1
0
        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));
        }