public ActionResult Add(TeamTeamMembersAddViewModel viewModel)
        {
            ValidateTeamTeamMember(viewModel);
            if (TempData["Error"] == null)
            {
                if (ModelState.IsValid)
                {
                    var ttm = new TeamTeamMember()
                    {
                        TeamId       = viewModel.TeamId,
                        TeamMemberId = viewModel.TeamMemberId,
                        RoleId       = viewModel.RoleId
                    };
                    _teamTeamMemberRepository.Add(ttm);

                    TempData["Message"] = "Your team member was successfully added!";

                    return(RedirectToAction("Detail", "Teams", new { id = viewModel.TeamId }));
                }
            }


            viewModel.Team = _teamsRepository.Get(viewModel.TeamId);
            viewModel.Init(Repository, _teamMembersRepository);

            return(View(viewModel));
        }
        public ActionResult Add(int teamId)
        {
            var team = _teamsRepository.Get(teamId);

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

            var viewModel = new TeamTeamMembersAddViewModel()
            {
                Team = team
            };

            viewModel.Init(Repository, _teamMembersRepository);

            return(View(viewModel));
        }
 /// <summary>
 /// Validates a team team member on the server
 /// before adding a new record.
 /// </summary>
 /// <param name="viewModel">The view model containing the values to validate.</param>
 private void ValidateTeamTeamMember(TeamTeamMembersAddViewModel viewModel)
 {
     if (viewModel.Team.TeamMembers.Count() >= viewModel.Team.Event.TeamSizeLimit)
     {
         TempData["Error"] = "This team can't have more players, it's full!";
     }
     // If there aren't any "TeamMemberId" and "RoleId" field validation errors...
     if (ModelState.IsValidField("TeamMemberId") &&
         ModelState.IsValidField("RoleId"))
     {
         // Then make sure that this team member and role combination
         // doesn't already exist for this team.
         if (_teamsRepository.TeamHasTeamMemberRoleCombination(viewModel.TeamId, viewModel.TeamMemberId, viewModel.RoleId))
         {
             ModelState.AddModelError("TeamMemberId",
                                      "This team member and role combination already exists for this team.");
         }
     }
 }