Esempio n. 1
0
        internal async Task <List <Event> > GetDataAsync()
        {
            JsonTournamentMain tournamentMain = await GetTournamentsAsync();

            JsonLeagueMain leagueMain = await GetLeaguesAsync(tournamentMain);

            JsonEventMain eventMain = new JsonEventMain();

            if (leagueMain.data.Count > 100)
            {
                List <JsonLeague> jsonLeaguesMain       = new List <JsonLeague>();
                JsonEventMain     currentEvents         = new JsonEventMain();
                JsonLeagueMain    currentJsonLeagueMain = new JsonLeagueMain();

                jsonLeaguesMain = leagueMain.data;

                while (jsonLeaguesMain.Count > 100)
                {
                    currentJsonLeagueMain.data = jsonLeaguesMain.GetRange(0, 100);
                    currentEvents = await GetEventsAsync(currentJsonLeagueMain);

                    eventMain.data = currentEvents.data.ToList();
                    jsonLeaguesMain.RemoveRange(0, 100);
                }
                currentJsonLeagueMain.data.Clear();
                currentJsonLeagueMain.data = jsonLeaguesMain.ToList();

                currentEvents = await GetEventsAsync(currentJsonLeagueMain);

                eventMain.data.AddRange(currentEvents.data);
            }
            else
            {
                eventMain = await GetEventsAsync(leagueMain);
            }

            if (tournamentMain == null || leagueMain == null || eventMain == null)
            {
                return(null);
            }

            if (this.inplay.Equals("true"))
            {
                FillLiveEvents(eventMain);
            }
            else
            {
                FillProgramEvents(eventMain);
            }

            return(eventList);
        }
Esempio n. 2
0
        private async Task <JsonLeagueMain> GetLeaguesAsync(JsonTournamentMain tournamentsResult)
        {
            if (tournamentsResult == null || tournamentsResult.data.Count <= 0)
            {
                return(null);
            }

            List <int> tournamentIds = new List <int>(tournamentsResult.data.Count);

            foreach (JsonTournament tournament in tournamentsResult.data)
            {
                tournamentList.Add(new Tournament(tournament.id, tournament.name, tournament.inplay_leagues_cnt));
                tournamentIds.Add(tournament.id);
            }

            string ids = string.Join(",", tournamentIds);

            DownloadTask downloadTask;

            try
            {
                downloadTask = new DownloadTask("http://www.oddstorm.com/feeds_api/", "POST");
                downloadTask.SetPostParams("{\"prematch\": " + this.prematch + ",\"inplay\": " + this.inplay + ",  \"scope\": \"leagues\",  \"tournament_ids\": [" + ids + "] }");
            }
            catch
            {
                return(null);
            }
            string result = String.Empty;

            result = await Execute(downloadTask, result);

            if (result == String.Empty)
            {
                return(null);
            }

            return(JsonConvert.DeserializeObject <JsonLeagueMain>(result));
        }