public async Task <List <Tournament> > GetTournamentsAsync(string[] tournamentTags, TournamentSearchFilter tournamentSearchFilter = null)
        {
            var apiResponse = await GetTournamentsResponseAsync(tournamentTags, tournamentSearchFilter);

            return(apiResponse.GetModel());
        }
        public async Task <ApiResponse <List <Tournament> > > GetTournamentsResponseAsync(string[] tournamentTags, TournamentSearchFilter tournamentSearchFilter = null)
        {
            Ensure.ArgumentNotNullOrEmptyEnumerable(tournamentTags, nameof(tournamentTags));

            var apiResponse = await _restApiClient.GetApiResponseAsync <List <Tournament> >(UrlPathBuilder.GetTournamentUrl(tournamentTags), tournamentSearchFilter?.ToQueryParams());

            return(apiResponse);
        }
        public async Task <List <Tournament> > SearchTournamentAsync(TournamentSearchFilter tournamentSearchFilter = null)
        {
            var apiResponse = await SearchTournamentResponseAsync(tournamentSearchFilter);

            return(apiResponse.GetModel());
        }
        public async Task <ApiResponse <List <Tournament> > > SearchTournamentResponseAsync(TournamentSearchFilter tournamentSearchFilter = null)
        {
            var apiResponse = await _restApiClient.GetApiResponseAsync <List <Tournament> >(UrlPathBuilder.TournamentSearchUrl, tournamentSearchFilter?.ToQueryParams());

            return(apiResponse);
        }