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); }
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); }