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