Example #1
0
        public async Task Fill()
        {
            this.labelTop.Text = "loading...";

            int venueID = FVOConfig.LoadFromKeyChain(App.KeyChain).VenueID;

            var resultsWeb = await App.WebService.GetResultsAtVenue(venueID);

            var results = resultsWeb.Select(r => r.ToResult()).ToList();
            var scores  = await App.WebService.GetScoresAtVenue(venueID);

            bool failedToLoadFromWeb = results == null || scores == null;

            if (failedToLoadFromWeb)
            {
                scores  = App.Repository.GetScores(true);
                results = App.Repository.GetResults(true).ToList();
            }

            var matches = (from score in scores
                           select SnookerMatchScore.FromScore(score.AthleteAID, score)).ToList();
            var breaks = (from result in results
                          select SnookerBreak.FromResult(result)).ToList();

            await new CacheHelper().LoadFromWebserviceIfNecessary_People(App.Cache, results, scores);
            new CacheHelper().LoadNamesFromCache(App.Cache, breaks);
            new CacheHelper().LoadNamesFromCache(App.Cache, matches);

            listOfMatchesControl.Fill(matches);
            listOfBreaksControl.Fill(breaks);

            this.labelTop.Text = failedToLoadFromWeb ? "Failed to load. Internet issues?" : "History";
        }