示例#1
0
        public ActionResult ManageTeam(int ID = -1)
        {
            int         userID = WebSecurity.GetUserId(User.Identity.Name);
            UserProfile user   = repository
                                 .Users
                                 .FirstOrDefault(u => u.UserId == userID);

            if (user == null)
            {
                logger.Warn("User with id = " + userID + " not found");
                throw new HttpException(404, "User with id = " + userID + " not found");
            }

            Team team = repository.Teams.FirstOrDefault(t =>
                                                        t.TeamID == ID &&
                                                        t.Members.FirstOrDefault(up => up.UserID == userID && up.Confirm == 1) != null);

            if (team == null)
            {
                return(RedirectToAction("Team", new { Message = TeamMessageId.TeamNotExist }));
            }

            ManageTeamViewModel viewModel = new ManageTeamViewModel()
            {
                TeamID  = team.TeamID,
                Name    = team.Name,
                Members = team.Members
            };

            return(View(viewModel));
        }
示例#2
0
        //Team Administrator must be able to manage Team  members and their roles

        public ActionResult ManageTeam(int?teamId)
        {
            var context       = new ApplicationDbContext();
            var currentUserId = User.Identity.GetUserId();

            var currentUser = db.Users
                              .Where(user => user.AppId == currentUserId)
                              .FirstOrDefault();


            var team = db.Teams
                       .Where(t => t.Id == teamId)
                       .FirstOrDefault();

            if (team == null)
            {
                return(HttpNotFound());
            }

            //team.

            if (currentUser.Id != team.OwnerId)
            {
                return(HttpNotFound());
            }

            ManageTeamViewModel viewModel = new ManageTeamViewModel()
            {
                TeamId          = team.Id,
                TeamUsers       = team.Users,
                UserPermissions = team.UserPermissions
            };

            return(View(viewModel));
        }
示例#3
0
        public ActionResult ManageTeam(int?teamId)
        {
            var currentUser = GetCurrentUser();

            if (!teamService.TeamExists((int)teamId))
            {
                return(HttpNotFound());
            }

            if (currentUser.Id != teamService.GetTeamOwnerId((int)teamId))
            {
                return(HttpNotFound());
            }

            ManageTeamViewModel viewModel = teamService.CreateManageTeamViewModel((int)teamId);

            return(View(viewModel));
        }
        public ManageTeamViewModel CreateManageTeamViewModel(int teamId)
        {
            var team = db.Teams.Find(teamId);

            var teamMembers = team.Users;

            var viewModel = new ManageTeamViewModel()
            {
                Team        = team,
                TeamMembers = new List <TeamMemberInfo>()
            };

            foreach (var teamMember in teamMembers)
            {
                if (teamMember.Id == team.OwnerId)
                {
                    continue;
                }

                var teamRole = team.UserPermissions
                               .Where(permission => permission.User == teamMember && permission.TeamId == team.Id)
                               .FirstOrDefault().TeamRole;

                var availableTeamRoles = db.TeamRoles
                                         .Where(role => role.Name != TEAM_OWNER_ROLE_NAME).
                                         ToList();

                var selectListForAvailableTeamRoles
                    = new SelectList(availableTeamRoles, "Id", "Name", teamRole.Id);

                var memberInfo = new TeamMemberInfo()
                {
                    TeamMember         = teamMember,
                    TeamRole           = teamRole,
                    AvailableTeamRoles = selectListForAvailableTeamRoles
                };

                viewModel.TeamMembers.Add(memberInfo);
            }
            return(viewModel);
        }