/// <summary> /// Confirm the request /// </summary> /// <param name="requestId">Request's id</param> public void Confirm(int requestId) { _authService.CheckAccess(AuthOperations.TournamentRequests.Confirm); var tournamentRequest = Get(requestId); if (tournamentRequest == null) { throw new MissingEntityException(ServiceResources.ExceptionMessages.TournamentRequestNotFound, requestId); } _tournamentRepository.AddTeamToTournament(tournamentRequest.TeamId, tournamentRequest.GroupId); _tournamentRepository.UnitOfWork.Commit(); NotifyUser(_userService.GetUser(Get(requestId).UserId).Email); _tournamentRequestRepository.Remove(requestId); _tournamentRequestRepository.UnitOfWork.Commit(); }
/// <summary> /// Adds selected teams to tournament /// </summary> /// <param name="groupTeam">Teams related to specific groups that will be added to tournament</param> public void AddTeamsToTournament(ICollection <TeamTournamentAssignmentDto> groupTeam) { _authService.CheckAccess(AuthOperations.Tournaments.ManageTeams); var groupTeamCount = groupTeam.Count; if (groupTeamCount == 0) { throw new ArgumentException( TournamentResources.CollectionIsEmpty); } var tournamentId = GetTournamentByGroup(groupTeam.First().GroupId).Id; var allTeams = GetAllTournamentTeams(tournamentId); var numberOfTeamAlreadyExist = 0; foreach (var item in groupTeam) { var tournamentTeam = allTeams.SingleOrDefault(t => t.TeamId == item.TeamId); if (tournamentTeam == null) { _tournamentRepository.AddTeamToTournament(item.TeamId, item.GroupId); } else { numberOfTeamAlreadyExist++; } } if (numberOfTeamAlreadyExist != 0) { throw new ArgumentException( TournamentResources.TeamNameInCurrentGroupOfTournamentNotUnique); } var totalTeamCount = allTeams.Count + groupTeamCount; CreateSchedule(tournamentId, totalTeamCount); _tournamentRepository.UnitOfWork.Commit(); }