protected override void RunInternal() { Uri universeUri = new Uri(_client.BaseUri, "/api/universe.xml"); Uri alliancesUri = new Uri(_client.BaseUri, "/api/alliances.xml"); Uri playersUri = new Uri(_client.BaseUri, "/api/players.xml"); Uri serverDataUri = new Uri(_client.BaseUri, "/api/serverData.xml"); FileInfo universeFile = new FileInfo(Path.Combine(_baseDir.FullName, _client.BaseUri.Host + "-universe.xml")); FileInfo alliancesFile = new FileInfo(Path.Combine(_baseDir.FullName, _client.BaseUri.Host + "-alliances.xml")); FileInfo playersFile = new FileInfo(Path.Combine(_baseDir.FullName, _client.BaseUri.Host + "-players.xml")); FileInfo serverDataFile = new FileInfo(Path.Combine(_baseDir.FullName, _client.BaseUri.Host + "-serverData.xml")); if (NeedUpdate(universeUri, universeFile, "universe").Sync()) { Logger.Instance.Log(LogLevel.Info, "ApiImporterJob: Updating universe from API"); Update(universeUri, universeFile).Sync(); Universe model = XmlModelSerializer.Deserialize <Universe>(universeFile); ProcessData(model); } if (NeedUpdate(alliancesUri, alliancesFile, "alliances").Sync()) { Logger.Instance.Log(LogLevel.Info, "ApiImporterJob: Updating alliances from API"); Update(alliancesUri, alliancesFile).Sync(); AlliancesContainer model = XmlModelSerializer.Deserialize <AlliancesContainer>(alliancesFile); ProcessData(model); } if (NeedUpdate(playersUri, playersFile, "players").Sync()) { Logger.Instance.Log(LogLevel.Info, "ApiImporterJob: Updating players from API"); Update(playersUri, playersFile).Sync(); PlayersContainer model = XmlModelSerializer.Deserialize <PlayersContainer>(playersFile); ProcessData(model); } if (NeedUpdate(serverDataUri, serverDataFile, "serverData").Sync()) { Logger.Instance.Log(LogLevel.Info, "ApiImporterJob: Updating serverData from API"); Update(serverDataUri, serverDataFile).Sync(); ServerData model = XmlModelSerializer.Deserialize <ServerData>(serverDataFile); ProcessData(model); } }
private void ProcessData(PlayersContainer model) { using (BotDb db = new BotDb()) { Dictionary <int, Db.Player> allPlayers = db.Players.ToDictionary(s => s.PlayerId); List <Db.Player> newPlayers = new List <Db.Player>(); for (int i = 0; i < model.Players.Length; i++) { var player = model.Players[i]; Db.Player dbPlayer; if (!allPlayers.TryGetValue(player.Id, out dbPlayer)) { dbPlayer = new Db.Player { PlayerId = player.Id }; newPlayers.Add(dbPlayer); allPlayers[player.Id] = dbPlayer; } dbPlayer.Name = player.Name; dbPlayer.Status = ParseStatus(player.Status); if (i % 250 == 0) { db.Players.AddRange(newPlayers); db.SaveChanges(); newPlayers.Clear(); } } db.Players.AddRange(newPlayers); db.SaveChanges(); } }
void ReleaseDesignerOutlets() { if (CoachName != null) { CoachName.Dispose(); CoachName = null; } if (MatchesContainer != null) { MatchesContainer.Dispose(); MatchesContainer = null; } if (PlayersContainer != null) { PlayersContainer.Dispose(); PlayersContainer = null; } if (StadiumName != null) { StadiumName.Dispose(); StadiumName = null; } if (TeamImage != null) { TeamImage.Dispose(); TeamImage = null; } if (TeamName != null) { TeamName.Dispose(); TeamName = null; } }