public async Task Register(Registration registration)
        {
            if (IsValid(registration))
            {
                var existingTournament   = _tournamentRepository.Exist(tournament => tournament.Id.Equals(registration.TournamentId));
                var existingTeam         = _teamRepository.Exist(team => team.Id.Equals(registration.TeamId));
                var existingRegistration = _registrationRepository.Exist(reg => reg.TournamentId.Equals(registration.TournamentId) &&
                                                                         reg.TeamId.Equals(registration.TeamId));

                if (existingTournament && existingTeam && !existingRegistration)
                {
                    await _registrationRepository.Register(registration);
                }
            }
        }