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."); } } }