public void FreezeBackgammon() { var context = DataEntitiesProvider.Provide(); var currentOlympiad = context.Olympiad_Infoes.First(x => x.Current); var pentamindStandingsGenerator = new PentamindStandingsGenerator(); // Next a Modern Abstract one var modernAbstractStandings = pentamindStandingsGenerator.GetBackgammonStandings(null); int rank = 1; foreach (var standing in modernAbstractStandings.Standings) { if (!standing.IsValid) { continue; } var contestant = context.Contestants.FirstOrDefault(x => x.Mind_Sport_ID == standing.ContestantId); var evt = context.Events.FirstOrDefault(x => x.OlympiadId == currentOlympiad.Id && x.Code == "BACC"); var entry = context.Entrants.FirstOrDefault(x => x.OlympiadId == currentOlympiad.Id && x.Game_Code == "BACC" && x.Mind_Sport_ID == standing.ContestantId); if (entry == null) { entry = Entrant.NewEntrant(evt.EIN, "BACC", currentOlympiad.Id, contestant, 0m); context.Entrants.Add(entry); } entry.Score = standing.TotalScoreStr; entry.Rank = rank; entry.Medal = MedalForRank(rank); rank++; context.SaveChanges(); } }