Exemple #1
0
        private static void Update(MongoDb db, List <Season> seasons, int year, int number)
        {
            var api = new FinalSirenApi();

            var numRounds = api.GetNumRounds(year);

            for (var i = number; i <= numRounds; i++)
            {
                var round = api.GetRoundResults(year, i);
                if (seasons.All(s => s.Year != year))
                {
                    seasons.Add(new Season(year, new List <Round>()));
                }

                if (seasons.First(s => s.Year == year).Rounds.Count >= i)
                {
                    seasons.First(s => s.Year == year).Rounds[i - 1] = round;
                }
                else
                {
                    seasons.First(s => s.Year == year).Rounds.Add(round);
                }
            }
            db.UpdateSeasons(seasons);
        }
Exemple #2
0
        public static void Update(List <Season> seasons, int year, int number)
        {
            var db  = new MongoDb();
            var api = new FinalSirenApi();
            var newDataStillComingTroughFromApi = true;

            var numRounds = api.GetNumRounds(year);//TODO:speed up - maybe store in code for now, in DB later

            for (var i = number; (i <= numRounds && newDataStillComingTroughFromApi); i++)
            {
                var round = api.GetRoundResults(year, i);
                if (round.Matches.TrueForAll(m => m.HomeScore().Total() < 0.1 && m.AwayScore().Total() < 0.1) && seasons.First(s => s.Year == year).Rounds.Count == numRounds)
                {
                    newDataStillComingTroughFromApi = false;
                }

                if (seasons.All(s => s.Year != year))
                {
                    seasons.Add(new Season(year, new List <Round>()));
                }

                if (seasons.First(s => s.Year == year).Rounds.Count >= i)
                {
                    seasons.First(s => s.Year == year).Rounds[i - 1] = round;
                }
                else
                {
                    seasons.First(s => s.Year == year).Rounds.Add(round);
                    db.UpdateSeasons(seasons.Where(s => s.Year >= year).ToList());
                }
            }
            db.UpdateSeasons(seasons.Where(s => s.Year >= year).ToList());
        }
        public static void UpdateMatchesFinalSiren(MongoDb db = null)
        {
            if (db == null)
            {
                db = new MongoDb();
            }

            //AFL
            var seasons  = db.GetSeasons().ToList();
            var roundUid = GetLastCompletedRoundUid(seasons);

            Console.WriteLine("Extending from " + roundUid.Year + ", " + (roundUid.IsFinal ? "Finals week " : "Round ") + roundUid.Number);

            //add any new matches between last match and now
            var api = new FinalSirenApi();

            seasons = api.UpdateFrom(seasons, roundUid).ToList();
            seasons.RemoveAll(s => s.Rounds.Count == 0);

            roundUid = GetLastCompletedRoundUid(seasons);
            Console.WriteLine("Last completed round: " + roundUid.Year + ", " + (roundUid.IsFinal ? "Finals week " : "Round ") + roundUid.Number);
            //update db
            db.UpdateSeasons(seasons);
        }