public async Task <Model> GetModel()
        {
            List <Task> tasks = new List <Task>();

            Task <List <MatchModel> > matches = RESTHelper.GetMatchesAsync();

            tasks.Add(matches);

            Task <List <TeamModel> > teams = RESTHelper.GetTeamsAsync();

            tasks.Add(teams);

            Task <List <LeagueModel> > leagues = RESTHelper.GetLeaguesAsync();

            tasks.Add(leagues);


            await Task.WhenAll(tasks);

            return(new Model
            {
                Matches = matches.Result,
                Teams = teams.Result,
                Leagues = leagues.Result
            });
        }
Example #2
0
        public async Task InitDatabaseFromServerAsync()
        {
            List <Task> tasks = new List <Task>();

            Task <List <EventMessageModel> > eventMessagesTask = RESTHelper.GetEventMessagesAsync();

            tasks.Add(eventMessagesTask);
            Task <List <LeagueModel> > leaguesTask = RESTHelper.GetLeaguesAsync();

            tasks.Add(leaguesTask);
            Task <List <RefereeModel> > refereesTask = RESTHelper.GetRefereesAsync();

            tasks.Add(refereesTask);
            Task <List <PlayerModel> > playersTask = RESTHelper.GetPlayersAsync();

            tasks.Add(playersTask);
            Task <List <StadiumModel> > stadiumsTask = RESTHelper.GetStadiumsAsync();

            tasks.Add(stadiumsTask);
            Task <List <TeamModel> > teamsTask = RESTHelper.GetTeamsAsync(true);

            tasks.Add(teamsTask);
            Task <List <MatchModel> > matchesTask = RESTHelper.GetMatchesAsync();

            tasks.Add(matchesTask);
            Task <Dictionary <int, List <int> > > playersAndTeamsTask = RESTHelper.GetPlayersAndTeamsAsync();

            tasks.Add(playersAndTeamsTask);
            Task <Dictionary <int, List <int> > > playersAndMatchesTask = RESTHelper.GetPlayersAndMatchesAsync();

            tasks.Add(playersAndMatchesTask);
            Task <Dictionary <int, List <int> > > refereesAndMatchesTask = RESTHelper.GetRefereesAndMatchesAsync();

            tasks.Add(refereesAndMatchesTask);
            Task <List <EventModel> > eventsTask = RESTHelper.GetEventsAsync();

            tasks.Add(eventsTask);

            await Task.WhenAll(tasks);

            Database db = new Database
            {
                EventMessages      = eventMessagesTask.Result,
                Leagues            = leaguesTask.Result,
                Referees           = refereesTask.Result,
                Players            = playersTask.Result,
                Stadiums           = stadiumsTask.Result,
                Teams              = teamsTask.Result,
                Matches            = matchesTask.Result,
                PlayersAndTeams    = playersAndTeamsTask.Result,
                PlayersAndMatches  = playersAndMatchesTask.Result,
                RefereesAndMatches = refereesAndMatchesTask.Result,
                Events             = eventsTask.Result
            };

            await AddTablesAsync(db);
        }
Example #3
0
        public async Task InitDatabaseFromServerAsync()
        {
            Task <List <EventMessageModel> >      eventMessagesTask;
            Task <List <LeagueModel> >            leaguesTask;
            Task <List <RefereeModel> >           refereesTask;
            Task <List <PlayerModel> >            playersTask;
            Task <List <StadiumModel> >           stadiumsTask;
            Task <List <TeamModel> >              teamsTask;
            Task <List <MatchModel> >             matchesTask;
            Task <Dictionary <int, List <int> > > playersAndTeamsTask;
            Task <Dictionary <int, List <int> > > playersAndMatchesTask;
            Task <Dictionary <int, List <int> > > refereesAndMatchesTask;
            Task <List <EventModel> >             eventsTask;

            try
            {
                List <Task> tasks = new List <Task>();

                eventMessagesTask = RESTHelper.GetEventMessagesAsync();
                tasks.Add(eventMessagesTask);
                leaguesTask = RESTHelper.GetLeaguesAsync();
                tasks.Add(leaguesTask);
                refereesTask = RESTHelper.GetRefereesAsync();
                tasks.Add(refereesTask);
                playersTask = RESTHelper.GetPlayersAsync();
                tasks.Add(playersTask);
                stadiumsTask = RESTHelper.GetStadiumsAsync();
                tasks.Add(stadiumsTask);
                teamsTask = RESTHelper.GetTeamsAsync(true);
                tasks.Add(teamsTask);
                matchesTask = RESTHelper.GetMatchesAsync();
                tasks.Add(matchesTask);
                playersAndTeamsTask = RESTHelper.GetPlayersAndTeamsAsync();
                tasks.Add(playersAndTeamsTask);
                playersAndMatchesTask = RESTHelper.GetPlayersAndMatchesAsync();
                tasks.Add(playersAndMatchesTask);
                refereesAndMatchesTask = RESTHelper.GetRefereesAndMatchesAsync();
                tasks.Add(refereesAndMatchesTask);
                eventsTask = RESTHelper.GetEventsAsync();
                tasks.Add(eventsTask);

                await Task.WhenAll(tasks);
            }
            catch (Exception ex)
            {
                throw new CommunicationException("Error during getting data from server!", ex);
            }


            Database db = new Database {
                EventMessages      = eventMessagesTask.Result,
                Leagues            = leaguesTask.Result,
                Referees           = refereesTask.Result,
                Players            = playersTask.Result,
                Stadiums           = stadiumsTask.Result,
                Teams              = teamsTask.Result,
                Matches            = matchesTask.Result,
                PlayersAndTeams    = playersAndTeamsTask.Result,
                PlayersAndMatches  = playersAndMatchesTask.Result,
                RefereesAndMatches = refereesAndMatchesTask.Result,
                Events             = eventsTask.Result
            };

            try
            {
                await AddTablesAsync(db);
            }
            catch (Exception ex)
            {
                throw new DatabaseException("Error during database init!", ex);
            }
        }