Exemple #1
0
        public async Task <IActionResult> AddIssue(AddNewIssueViewModel model)
        {
            if (ModelState.IsValid)
            {
                Console.WriteLine("Testing");
                var userId      = userManager.GetUserId(User);
                var currentUser = await userManager.FindByIdAsync(userId);

                var userClaims = await userManager.GetClaimsAsync(currentUser);

                Global.globalCurrentUserClaims = userClaims.ToList();

                var IsUserManagerLevel = ClaimsLevel.IsManager(userClaims.ToList(), model.NewIssue.AssociatedProject);

                if (IsUserManagerLevel && model.NewIssue.AssigneeUserId != null)
                {
                    var assignedUser = await userManager.FindByIdAsync(model.NewIssue.AssigneeUserId);

                    model.NewIssue.AssigneeUserName = assignedUser.UserName;
                }

                model.NewIssue.SubmitterId       = userManager.GetUserId(User);
                model.NewIssue.SubmitterUserName = userManager.GetUserName(User);
                model.NewIssue.CreatedTime       = DateTime.Now;

                var issue = _issueRepository.AddIssue(model.NewIssue);

                if (issue.Title == null)
                {
                    issue.Title = $"issue {issue.IssueId}";
                    _issueRepository.Update(issue);
                }

                var projectIssue = new ProjectIssue
                {
                    ProjectId = issue.AssociatedProject,
                    IssueId   = issue.IssueId
                };
                _projectRepository.AddProjectIssues(projectIssue);
                Console.WriteLine("HERERERER");

                var fileNames = new List <ScreenShots>();

                if (Global.globalInitialScreenShots == true)
                {
                    Console.WriteLine("Globally");
                    fileNames = await UploadScreenShotsToStorage(issue.IssueId);
                }

                Global.InitialScreenShots = false;
                _issueRepository.AddScreenShots(fileNames);

                Console.WriteLine(_issueRepository.ScreenShots(issue.IssueId));



                return(RedirectToAction("projectissues", "Project", new { projectId = model.NewIssue.AssociatedProject }));
            }
            return(View());
        }
Exemple #2
0
        public async Task <IActionResult> AddIssue(int projectId)
        {
            Global.ProjectId = projectId;

            var initial = new Issue
            {
                AssociatedProject = projectId,
                DueDate           = DateTime.Today
            };

            var project = _projectRepository.GetProject(projectId);

            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(), projectId);

            if (IsUserLevel == false)
            {
                return(RedirectToAction("AccessDenied", "Account"));
            }

            var users        = new List <IdentityUser>();
            var projectUsers = new List <String>();

            projectUsers.Add(project.OwnerId);

            if (project.UsersAssigned != null)
            {
                projectUsers.AddRange(project.UsersAssigned.Split(" ").ToList());
            }
            Console.WriteLine(projectUsers[0]);


            foreach (var uId in projectUsers)
            {
                var user = await userManager.FindByIdAsync(uId);

                Console.WriteLine($"user is {user}");
                if (user != null && !users.Contains(user))
                {
                    users.Add(user);
                }
            }

            var viewModel = new AddNewIssueViewModel
            {
                ProjectId    = projectId,
                ProjectUsers = users,
                NewIssue     = initial
            };

            foreach (var user in users)
            {
                Console.WriteLine("USEr EMAIL");
                Console.WriteLine(user.Email);
            }

            return(View(viewModel));
        }