public async Task <IActionResult> TeamMembersAsync(int teamId)
        {
            var members = await GetAllTeamMembersAsync(teamId, new DisplayOptions { });

            if (members == null)
            {
                return(View("MembersError"));
            }

            var teams = await _manageTeamsService.GetMyTeamsAsync();

            var team = teams.FirstOrDefault(x => x.Id == teamId);

            if (team == null)
            {
                return(View("ErrorNotMember"));
            }

            var isOwner = false;

            if (await _accessCheckService.IsOwnerAsync(teamId))
            {
                isOwner = true;
            }

            var teamViewModel = TeamViewModel.Create(team, isOwner, new List <TeamMember>());

            return(View(teamViewModel));
        }
Пример #2
0
        public async Task <IActionResult> AllSprints(int teamId, DisplayOptions options)
        {
            List <Sprint> sprints;

            if (await _accessCheckService.OwnerOrMemberAsync(teamId))
            {
                sprints = (List <Sprint>) await _manageSprintsService.GetAllSprintsAsync(teamId, options);
            }
            else
            {
                return(View("ErrorGetAllSprints"));
            }

            var team = await _manageSprintsService.GetTeam(teamId);

            if (await _accessCheckService.IsOwnerAsync(teamId))
            {
                ViewBag.AddVision = "visible";
            }
            else
            {
                ViewBag.AddVision = "collapse";
            }

            ViewData["DaysInSprint"]      = _localizer["DaysInSprint"];
            ViewData["StoryPointInHours"] = _localizer["StoryPointInHours"];
            ViewData["NameOfSprint"]      = _localizer["NameOfSprint"];
            ViewData["AddMember"]         = _localizer["AddMember"];
            ViewData["RemoveMember"]      = _localizer["RemoveMember"];
            ViewData["Remove"]            = _localizer["Remove"];
            ViewData["Cancel"]            = _localizer["Cancel"];

            List <TeamMember> teamMembers = await GetAllTeamMembersAsync(teamId, new DisplayOptions { });

            var sprintAndTeam = new SprintAndTeamViewModel
            {
                Sprints = new List <SprintViewModel>()
            };

            sprints.ForEach(t => sprintAndTeam.Sprints.Add(new SprintViewModel()
            {
                Id                = t.Id,
                DaysInSprint      = t.DaysInSprint,
                Status            = t.Status,
                Name              = t.Name,
                StoryPointInHours = t.StoryPointInHours,
                TeamId            = t.TeamId
            }
                                                           ));
            sprintAndTeam.Team = new TeamViewModel()
            {
                Id = team.Id, Owner = team.Owner, TeamName = team.TeamName, TeamMembers = new List <TeamMemberViewModel>()
            };
            teamMembers.ForEach(t => sprintAndTeam.Team.TeamMembers.Add(new TeamMemberViewModel()
            {
                Member = t.Member, MemberId = t.MemberId
            }));
            return(View(sprintAndTeam));
        }
Пример #3
0
        public async Task <IActionResult> AllSprints(int teamId, DisplayOptions options)
        {
            List <Sprint> sprints;

            if (await _accessCheckService.OwnerOrMemberAsync(teamId))
            {
                sprints = (List <Sprint>) await _manageSprintsService.GetAllSprintsAsync(teamId, options);
            }
            else
            {
                return(View("ErrorGetAllSprints"));
            }

            List <TeamMember> teamMembers = await GetAllTeamMembersAsync(teamId, new DisplayOptions { });

            var sprintViewModel = new SprintAndTeamViewModel
            {
                Sprints = new List <SprintViewModel>()
            };

            if (await _accessCheckService.IsOwnerAsync(teamId))
            {
                sprintViewModel.IsOwner = true;
            }
            else
            {
                sprintViewModel.IsOwner = false;
            }

            sprints.ForEach(t => sprintViewModel.Sprints.Add(new SprintViewModel()
            {
                Id                = t.Id,
                DaysInSprint      = t.DaysInSprint,
                Status            = t.Status,
                Name              = t.Name,
                StoryPointInHours = t.StoryPointInHours,
                TeamId            = t.TeamId
            }
                                                             ));

            var team = await _manageSprintsService.GetTeam(teamId);

            sprintViewModel.Team = new TeamViewModel()
            {
                Id          = team.Id,
                Owner       = team.Owner,
                TeamName    = team.TeamName,
                TeamMembers = new List <TeamMemberViewModel>()
            };

            teamMembers.ForEach(t => sprintViewModel.Team.TeamMembers.Add(new TeamMemberViewModel()
            {
                Member   = t.Member,
                MemberId = t.MemberId
            }));

            return(View(sprintViewModel));
        }
Пример #4
0
        public async Task <IActionResult> AllTasksForTeam(int teamId, DisplayOptions options)
        {
            if (!await _accessCheckService.OwnerOrMemberAsync(teamId))
            {
                return(View("ErrorGetAllTasks"));
            }
            var tasks = await _manageTasksService.GetAllTasksForTeamAsync(teamId, options);

            if (await _accessCheckService.IsOwnerAsync(teamId))
            {
                ViewBag.AddVision = "visible";
            }
            else
            {
                ViewBag.AddVision = "collapse";
            }

            var tasksForTeamViewModel = new AllTasksForTeamViewModel();
            var team = await _manageTeamsService.GetTeamAsync(teamId);

            if (tasks == null || team == null)
            {
                return(View("ErrorGetAllTasks"));
            }

            tasksForTeamViewModel.TeamName = team.TeamName;
            tasksForTeamViewModel.Tasks    = new List <TaskViewModel>();
            tasks.ToList().ForEach(t => tasksForTeamViewModel.Tasks.Add(new TaskViewModel()
            {
                Id         = t.Id,
                Link       = t.Link,
                Name       = t.Name,
                TeamMember = new TeamMemberViewModel()
                {
                    Member = t.TeamMember.Member
                }
            }));
            tasksForTeamViewModel.TeamId = team.Id;
            return(View(tasksForTeamViewModel));
        }
Пример #5
0
        public async Task <IActionResult> AllSprints(int teamId, DisplayOptions options)
        {
            List <Sprint> sprints;

            options.SortDirection = SortDirection.ByStatus;

            if (await _accessCheckService.OwnerOrMemberAsync(teamId))
            {
                var ienumarableSprints = await _manageSprintsService.GetAllSprintsAsync(teamId, options);

                sprints = ienumarableSprints.ToList();
            }
            else
            {
                return(View("ErrorGetAllSprints"));
            }

            var isOwner = false;

            if (await _accessCheckService.IsOwnerAsync(teamId))
            {
                isOwner = true;
            }

            var team = await _manageSprintsService.GetTeam(teamId);

            var teamMembers = await GetAllTeamMembersAsync(teamId, new DisplayOptions { });

            team.SetTeamMembers(teamMembers);
            var sprintViewModel = SprintAndTeamViewModel.Create(null,
                                                                sprints, team, isOwner, new List <MemberWorkingDays>());

            return(View(sprintViewModel));
        }
Пример #6
0
        public async Task <IActionResult> TeamMembersAsync(int teamId)
        {
            List <TeamMember> members = await GetAllTeamMembersAsync(teamId, new DisplayOptions { });

            if (members == null)
            {
                return(View("MembersError"));
            }

            var teams = await _manageTeamsService.GetMyTeamsAsync();

            var team = teams.FirstOrDefault(x => x.Id == teamId);

            if (team == null)
            {
                return(View("ErrorNotMember"));
            }

            var teamViewModel = new TeamViewModel()
            {
                Id          = team.Id,
                TeamName    = team.TeamName,
                Owner       = team.Owner,
                TeamMembers = new List <TeamMemberViewModel>()
            };

            members.ForEach(t => teamViewModel.TeamMembers.Add(new TeamMemberViewModel()
            {
                MemberId = t.MemberId,
                Member   = t.Member
            }));

            if (await _accessCheckService.IsOwnerAsync(teamId))
            {
                teamViewModel.IsOwner = true;
            }
            else
            {
                teamViewModel.IsOwner = false;
            }

            return(View(teamViewModel));
        }
        public async Task <IActionResult> GetAllWorkingDays(int sprintId)
        {
            var sprint = await _manageSprintsService.GetSprintAsync(sprintId, true);

            var workingDays = await _manageMemberWorkingDaysService.GetAllWorkingDaysForSprintAsync(sprintId);

            var team = await _manageSprintsService.GetTeam(sprint.TeamId);

            var isOwner = false;

            if (await _accessCheckService.IsOwnerAsync(team.Id))
            {
                isOwner = true;
            }

            var sprintAndTeamViewModel = SprintAndTeamViewModel.Create(sprint, new List <Sprint>(), team, isOwner, workingDays.ToList());

            return(PartialView("_WorkingDaysPartial", sprintAndTeamViewModel));
        }
Пример #8
0
        public async Task <IActionResult> AllTasksForTeam(int teamId, DisplayOptions options)
        {
            if (!await _accessCheckService.OwnerOrMemberAsync(teamId))
            {
                return(View("ErrorGetAllTasks"));
            }
            var tasks = await _manageTasksService.GetAllTasksForTeamAsync(teamId, options);

            var team = await _manageTeamsService.GetTeamAsync(teamId);

            if (tasks == null || team == null)
            {
                return(View("ErrorGetAllTasks"));
            }

            var tasksForTeamViewModel = new AllTasksForTeamViewModel();

            tasksForTeamViewModel.TeamName = team.TeamName;
            tasksForTeamViewModel.Tasks    = new List <TaskViewModel>();

            tasks.ToList().ForEach(t => tasksForTeamViewModel.Tasks.Add(new TaskViewModel()
            {
                Id          = t.Id,
                Link        = t.Link,
                Name        = t.Name,
                StoryPoints = t.StoryPoints,
                TeamMember  = t.MemberId != null ? new TeamMemberViewModel()
                {
                    Member = t.TeamMember.Member
                } : null
            }));

            tasksForTeamViewModel.TeamId = team.Id;

            if (await _accessCheckService.IsOwnerAsync(teamId))
            {
                tasksForTeamViewModel.IsOwner = true;
            }
            else
            {
                tasksForTeamViewModel.IsOwner = false;
            }

            return(View(tasksForTeamViewModel));
        }
Пример #9
0
        private async Task <AllTasksForTeamViewModel> GetAllTasksForTeamViewModel(int teamId, DisplayOptions options)
        {
            options.SortDirection = SortDirection.ByStatus;
            var tasks = await _manageTasksService.GetAllTasksForTeamAsync(teamId, options);

            var team = await _manageTeamsService.GetTeamAsync(teamId);

            var sprints = await _manageSprintsService.GetAllSprintsAsync(teamId, options);

            var isOwner = false;

            if (await _accessCheckService.IsOwnerAsync(teamId))
            {
                isOwner = true;
            }

            var tasksForTeamViewModel = AllTasksForTeamViewModel.Create(team, isOwner, sprints.ToList(), tasks.ToList());

            return(tasksForTeamViewModel);
        }
Пример #10
0
        private async Task <AllTasksForTeamViewModel> GetAllTasksForTeamViewModel(int teamId, DisplayOptions options)
        {
            var tasks = await _manageTasksService.GetAllTasksForTeamAsync(teamId, options);

            var team = await _manageTeamsService.GetTeamAsync(teamId);

            var sprints = await _manageSprintsService.GetAllSprintsAsync(teamId, options);

            var members = await _manageTeamsMembersService.GetAllTeamMembersAsync(teamId, new DisplayOptions { });

            var tasksForTeamViewModel = new AllTasksForTeamViewModel()
            {
                TeamId   = team.Id,
                TeamName = team.TeamName,
                Tasks    = new List <TaskViewModel>(),
                Sprints  = new List <SprintViewModel>(),
                Members  = new List <TeamMemberViewModel>()
            };

            sprints.ToList().ForEach(t => tasksForTeamViewModel.Sprints.Add(new SprintViewModel()
            {
                Id                = t.Id,
                DaysInSprint      = t.DaysInSprint,
                Status            = t.Status,
                Name              = t.Name,
                StoryPointInHours = t.StoryPointInHours,
                TeamId            = t.TeamId
            }));

            if (tasksForTeamViewModel.Sprints.Count > 1 && tasksForTeamViewModel.Sprints[1].Status == PossibleStatuses.ActiveStatus)
            {
                var swapElem = tasksForTeamViewModel.Sprints[0];
                tasksForTeamViewModel.Sprints[0] = tasksForTeamViewModel.Sprints[1];
                tasksForTeamViewModel.Sprints[1] = swapElem;
            }

            tasks.ToList().ForEach(t => tasksForTeamViewModel.Tasks.Add(new TaskViewModel()
            {
                Id          = t.Id,
                Link        = t.Link,
                Name        = t.Name,
                StoryPoints = t.StoryPoints,
                SprintId    = t.SprintId,
                TeamMember  = t.MemberId != null ? new TeamMemberViewModel()
                {
                    Member = t.TeamMember.Member
                } : null,
                MemberId  = t.MemberId,
                Completed = t.Completed
            }));

            members.ForEach(t => tasksForTeamViewModel.Members.Add(new TeamMemberViewModel()
            {
                MemberId = t.MemberId,
                Member   = t.Member
            }));

            if (await _accessCheckService.IsOwnerAsync(teamId))
            {
                tasksForTeamViewModel.IsOwner = true;
            }
            else
            {
                tasksForTeamViewModel.IsOwner = false;
            }

            return(tasksForTeamViewModel);
        }
Пример #11
0
        public async System.Threading.Tasks.Task IsOwnerAsync_AccessCheckServiceReturnsTrue_ReturnsTrue()
        {
            //Arrange
            const int    teamId1 = 1;
            const int    teamId2 = 3;
            const string id      = "abc-def";

            var teams = new List <Team>
            {
                new Team {
                    Id = 1, TeamOwner = "abc-def", TeamName = "Team1", TeamMembers = new List <TeamMember> {
                        new TeamMember {
                            MemberId = "def-abc", TeamId = 1
                        }
                    }
                },
                new Team {
                    Id = 2, TeamOwner = "def-abc", TeamName = "Team2", TeamMembers = new List <TeamMember> {
                        new TeamMember {
                            MemberId = "abc-def", TeamId = 2
                        }
                    }
                },
                new Team {
                    Id = 3, TeamOwner = "def-abc", TeamName = "Team3", TeamMembers = new List <TeamMember> {
                        new TeamMember {
                            MemberId = "asf-fgv", TeamId = 3
                        }
                    }
                },
                new Team {
                    Id = 4, TeamOwner = "abc-def", TeamName = "Team4", TeamMembers = new List <TeamMember> {
                        new TeamMember {
                            MemberId = "abc-def", TeamId = 4
                        }
                    }
                },
                new Team {
                    Id = 5, TeamOwner = "def-abc", TeamName = "Team5", TeamMembers = new List <TeamMember> {
                        new TeamMember {
                            MemberId = "asf-fgv", TeamId = 5
                        }
                    }
                },
                new Team {
                    Id = 6, TeamOwner = "def-abc", TeamName = "Team6", TeamMembers = new List <TeamMember> {
                        new TeamMember {
                            MemberId = "asf-fgv", TeamId = 6
                        }
                    }
                },
                new Team {
                    Id = 7, TeamOwner = "def-abc", TeamName = "Team7", TeamMembers = new List <TeamMember> {
                        new TeamMember {
                            MemberId = "asf-fgv", TeamId = 7
                        }
                    }
                },
                new Team {
                    Id = 8, TeamOwner = "def-abc", TeamName = "Team8", TeamMembers = new List <TeamMember> {
                        new TeamMember {
                            MemberId = "asf-fgv", TeamId = 8
                        }
                    }
                },
                new Team {
                    Id = 9, TeamOwner = "def-abc", TeamName = "Team9", TeamMembers = new List <TeamMember> {
                        new TeamMember {
                            MemberId = "abc-def", TeamId = 9
                        }
                    }
                },
                new Team {
                    Id = 10, TeamOwner = "def-abc", TeamName = "Team10", TeamMembers = new List <TeamMember> {
                        new TeamMember {
                            MemberId = "asf-fgv", TeamId = 10
                        }
                    }
                }
            };

            var mock = teams.AsQueryable().BuildMock();

            _teamRepository.Setup(x => x.GetAll()).Returns(mock.Object);

            var ud = new Mock <UserDetails>(null);

            ud.Setup(x => x.Id()).Returns(id);
            ud.Setup(x => x.Name()).Returns("name");
            _currentUser.SetupGet(x => x.Current).Returns(ud.Object);

            //Act
            var result1 = await _accessCheckService.IsOwnerAsync(teamId1);       //Owner

            var result2 = await _accessCheckService.IsOwnerAsync(teamId2);       //Not Owner

            //Assert>
            Assert.AreEqual(true, result1);
            Assert.AreEqual(false, result2);
        }
Пример #12
0
        public async System.Threading.Tasks.Task IsOwnerAsync_AccessCheckServiceReturnsTrue_ReturnsTrue()
        {
            //Arrange
            const int    teamId1 = 1;
            const int    teamId2 = 3;
            const string id      = "abc-def";

            var teams = new List <Team>
            {
                Team.Create(1, "abc-def", "Team1", new List <TeamMember>()
                {
                    TeamMember.Create(1, 1, "def-abc", User.Create("1234", "*****@*****.**", "vasya", "ivanov"))
                }),

                Team.Create(2, "def-abc", "Team2", new List <TeamMember>()
                {
                    TeamMember.Create(2, 2, "abc-def", User.Create("1234", "*****@*****.**", "vasya", "ivanov"))
                }),

                Team.Create(3, "def-abc", "Team3", new List <TeamMember>()
                {
                    TeamMember.Create(3, 3, "asf-fgv", User.Create("1234", "*****@*****.**", "vasya", "ivanov"))
                }),

                Team.Create(4, "abc-def", "Team4", new List <TeamMember>()
                {
                    TeamMember.Create(4, 4, "abc-def", User.Create("1234", "*****@*****.**", "vasya", "ivanov"))
                }),

                Team.Create(5, "def-abc", "Team5", new List <TeamMember>()
                {
                    TeamMember.Create(5, 5, "asf-fgv", User.Create("1234", "*****@*****.**", "vasya", "ivanov"))
                }),

                Team.Create(6, "def-abc", "Team6", new List <TeamMember>()
                {
                    TeamMember.Create(6, 6, "asf-fgv", User.Create("1234", "*****@*****.**", "vasya", "ivanov"))
                }),

                Team.Create(7, "def-abc", "Team7", new List <TeamMember>()
                {
                    TeamMember.Create(7, 7, "asf-fgv", User.Create("1234", "*****@*****.**", "vasya", "ivanov"))
                }),

                Team.Create(8, "def-abc", "Team8", new List <TeamMember>()
                {
                    TeamMember.Create(8, 8, "asf-fgv", User.Create("1234", "*****@*****.**", "vasya", "ivanov"))
                }),

                Team.Create(9, "def-abc", "Team9", new List <TeamMember>()
                {
                    TeamMember.Create(9, 9, "abc-def", User.Create("1234", "*****@*****.**", "vasya", "ivanov"))
                }),

                Team.Create(10, "def-abc", "Team10", new List <TeamMember>()
                {
                    TeamMember.Create(10, 10, "asf-fgv", User.Create("1234", "*****@*****.**", "vasya", "ivanov"))
                }),
            };

            var mock = teams.AsQueryable().BuildMock();

            _teamRepository.Setup(x => x.GetAllAsync())
            .Returns(System.Threading.Tasks.Task.FromResult(teams.AsEnumerable()));

            var ud = new Mock <UserDetails>(null);

            ud.Setup(x => x.Id()).Returns(id);
            ud.Setup(x => x.Name()).Returns("name");
            _currentUser.SetupGet(x => x.Current).Returns(ud.Object);

            //Act
            var result1 = await _accessCheckService.IsOwnerAsync(teamId1);       //Owner

            var result2 = await _accessCheckService.IsOwnerAsync(teamId2);       //Not Owner

            //Assert>
            Assert.AreEqual(true, result1);
            Assert.AreEqual(false, result2);
        }