public async Task <ICollection <Match> > findMatches(int leagueId, int gameweek)
    {
        ProcessedLeagueFixtureList matchesInfo = await getLeagueEntriesAndMatches(leagueId);

        if (matchesInfo == null)
        {
            return(null);
        }
        return(matchesInfo.matches[gameweek]);
    }
    public async Task <ProcessedLeagueFixtureList> getLeagueEntriesAndMatches(int leagueId)
    {
        if (!_footballerCache.leagueEntriesAndMatches.ContainsKey(leagueId))
        {
            await _footballerCache.leagueEntriesLock.WaitAsync();

            if (!_footballerCache.leagueEntriesAndMatches.ContainsKey(leagueId))
            {
                ProcessedLeagueFixtureList data = await readLeagueH2hMatches(leagueId);

                _footballerCache.leagueEntriesAndMatches[leagueId] = data;
            }
            _footballerCache.leagueEntriesLock.Release();
        }
        return(_footballerCache.leagueEntriesAndMatches[leagueId]);
    }