ArkData Changes

- changed SingleOrDefault to FirstOrDefault
This commit is contained in:
Brett Hewitson 2022-06-22 23:16:34 +10:00
parent f51e92c5a2
commit c7da511d1e
3 changed files with 36 additions and 12 deletions

View file

@ -40,13 +40,17 @@ namespace ArkData
if (playerFiles != null) if (playerFiles != null)
{ {
foreach (var file in playerFiles) foreach (var file in playerFiles)
{
container.Players.Add(await Parser.ParsePlayerAsync(file)); container.Players.Add(await Parser.ParsePlayerAsync(file));
}
} }
if (tribeFiles != null) if (tribeFiles != null)
{ {
foreach (var file in tribeFiles) foreach (var file in tribeFiles)
{
container.Tribes.Add(await Parser.ParseTribeAsync(file)); container.Tribes.Add(await Parser.ParseTribeAsync(file));
}
} }
container.LinkPlayerTribe(); container.LinkPlayerTribe();
@ -85,12 +89,16 @@ namespace ArkData
var response = await client.GetAsync(string.Format("ISteamUser/GetPlayerSummaries/v0002/?key={0}&steamids={1}", apiKey, builder)); var response = await client.GetAsync(string.Format("ISteamUser/GetPlayerSummaries/v0002/?key={0}&steamids={1}", apiKey, builder));
if (response.IsSuccessStatusCode) if (response.IsSuccessStatusCode)
{
using (var reader = new StreamReader(await response.Content.ReadAsStreamAsync())) using (var reader = new StreamReader(await response.Content.ReadAsStreamAsync()))
{ {
LinkSteamProfiles(await reader.ReadToEndAsync(), lastSteamUpdateUtc, playerSteamIds); LinkSteamProfiles(await reader.ReadToEndAsync(), lastSteamUpdateUtc, playerSteamIds);
} }
}
else else
{
throw new System.Net.WebException("The Steam API request was unsuccessful. Are you using a valid key?"); throw new System.Net.WebException("The Steam API request was unsuccessful. Are you using a valid key?");
}
} }
startIndex += steamIdsCount; startIndex += steamIdsCount;
@ -109,12 +117,16 @@ namespace ArkData
public Task LoadOnlinePlayersAsync(string ipString, int port) public Task LoadOnlinePlayersAsync(string ipString, int port)
{ {
if (SteamLoaded) if (SteamLoaded)
{
return Task.Run(() => return Task.Run(() =>
{ {
LinkOnlinePlayers(ipString, port); LinkOnlinePlayers(ipString, port);
}); });
}
else else
{
throw new System.Exception("The Steam user data should be loaded before the server status can be checked."); throw new System.Exception("The Steam user data should be loaded before the server status can be checked.");
}
} }
} }
} }

View file

@ -52,11 +52,8 @@ namespace ArkData
for (var i = 0; i < Players.Count; i++) for (var i = 0; i < Players.Count; i++)
{ {
var online_player = online.SingleOrDefault(p => p.Name == Players[i].PlayerName); var online_player = online.FirstOrDefault(p => p.Name == Players[i].PlayerName);
if (online_player != null) Players[i].Online = online_player != null;
Players[i].Online = true;
else
Players[i].Online = false;
} }
} }
catch (SSQLServerException) catch (SSQLServerException)
@ -74,13 +71,13 @@ namespace ArkData
{ {
var player = Players[i]; var player = Players[i];
player.OwnedTribes = Tribes.Where(t => t.OwnerId == player.CharacterId).ToList(); player.OwnedTribes = Tribes.Where(t => t.OwnerId == player.CharacterId).ToList();
player.Tribe = Tribes.SingleOrDefault(t => t.Id == player.TribeId); player.Tribe = Tribes.FirstOrDefault(t => t.Id == player.TribeId);
} }
for (var i = 0; i < Tribes.Count; i++) for (var i = 0; i < Tribes.Count; i++)
{ {
var tribe = Tribes[i]; var tribe = Tribes[i];
tribe.Owner = Players.SingleOrDefault(p => p.CharacterId == tribe.OwnerId); tribe.Owner = Players.FirstOrDefault(p => p.CharacterId == tribe.OwnerId);
tribe.Players = Players.Where(p => p.TribeId == tribe.Id).ToList(); tribe.Players = Players.Where(p => p.TribeId == tribe.Id).ToList();
} }
} }
@ -95,16 +92,21 @@ namespace ArkData
for (var i = 0; i < profiles.Count; i++) for (var i = 0; i < profiles.Count; i++)
{ {
var player = Players.Single(p => p.PlayerId == profiles[i].steamid); var player = Players.FirstOrDefault(p => p.PlayerId == profiles[i].steamid);
player.PlayerName = profiles[i].personaname; if (player != null)
player.LastPlatformUpdateUtc = lastSteamUpdateUtc; {
player.PlayerName = profiles[i].personaname;
player.LastPlatformUpdateUtc = lastSteamUpdateUtc;
}
} }
for (var i = 0; i < playerSteamIds.Length; i++) for (var i = 0; i < playerSteamIds.Length; i++)
{ {
var player = Players.SingleOrDefault(p => p.PlayerId == playerSteamIds[i]); var player = Players.FirstOrDefault(p => p.PlayerId == playerSteamIds[i]);
if (player != null && player.LastPlatformUpdateUtc == DateTime.MinValue) if (player != null && player.LastPlatformUpdateUtc == DateTime.MinValue)
{
player.NoUpdateCount = Math.Min(MAX_INVALID_COUNT, player.NoUpdateCount + 1); player.NoUpdateCount = Math.Min(MAX_INVALID_COUNT, player.NoUpdateCount + 1);
}
} }
} }
} }

View file

@ -38,13 +38,17 @@ namespace ArkData
if (playerFiles != null) if (playerFiles != null)
{ {
foreach (var file in playerFiles) foreach (var file in playerFiles)
{
container.Players.Add(Parser.ParsePlayer(file)); container.Players.Add(Parser.ParsePlayer(file));
}
} }
if (tribeFiles != null) if (tribeFiles != null)
{ {
foreach (var file in tribeFiles) foreach (var file in tribeFiles)
{
container.Tribes.Add(Parser.ParseTribe(file)); container.Tribes.Add(Parser.ParseTribe(file));
}
} }
container.LinkPlayerTribe(); container.LinkPlayerTribe();
@ -83,12 +87,16 @@ namespace ArkData
var response = client.GetAsync(string.Format("ISteamUser/GetPlayerSummaries/v0002/?key={0}&steamids={1}", apiKey, builder)).Result; var response = client.GetAsync(string.Format("ISteamUser/GetPlayerSummaries/v0002/?key={0}&steamids={1}", apiKey, builder)).Result;
if (response.IsSuccessStatusCode) if (response.IsSuccessStatusCode)
{
using (var reader = new StreamReader(response.Content.ReadAsStreamAsync().Result)) using (var reader = new StreamReader(response.Content.ReadAsStreamAsync().Result))
{ {
LinkSteamProfiles(reader.ReadToEnd(), lastSteamUpdateUtc, playerSteamIds); LinkSteamProfiles(reader.ReadToEnd(), lastSteamUpdateUtc, playerSteamIds);
} }
}
else else
{
throw new System.Net.WebException("The Steam API request was unsuccessful. Are you using a valid key?"); throw new System.Net.WebException("The Steam API request was unsuccessful. Are you using a valid key?");
}
} }
startIndex += steamIdsCount; startIndex += steamIdsCount;
@ -110,7 +118,9 @@ namespace ArkData
LinkOnlinePlayers(ipString, port); LinkOnlinePlayers(ipString, port);
} }
else else
throw new System.Exception("The Steam user data should be loaded before the server status can be checked."); {
throw new Exception("The Steam user data should be loaded before the server status can be checked.");
}
} }
} }
} }