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)
{
foreach (var file in playerFiles)
{
container.Players.Add(await Parser.ParsePlayerAsync(file));
}
}
if (tribeFiles != null)
{
foreach (var file in tribeFiles)
{
container.Tribes.Add(await Parser.ParseTribeAsync(file));
}
}
container.LinkPlayerTribe();
@ -85,12 +89,16 @@ namespace ArkData
var response = await client.GetAsync(string.Format("ISteamUser/GetPlayerSummaries/v0002/?key={0}&steamids={1}", apiKey, builder));
if (response.IsSuccessStatusCode)
{
using (var reader = new StreamReader(await response.Content.ReadAsStreamAsync()))
{
LinkSteamProfiles(await reader.ReadToEndAsync(), lastSteamUpdateUtc, playerSteamIds);
}
}
else
{
throw new System.Net.WebException("The Steam API request was unsuccessful. Are you using a valid key?");
}
}
startIndex += steamIdsCount;
@ -109,12 +117,16 @@ namespace ArkData
public Task LoadOnlinePlayersAsync(string ipString, int port)
{
if (SteamLoaded)
{
return Task.Run(() =>
{
LinkOnlinePlayers(ipString, port);
});
}
else
{
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++)
{
var online_player = online.SingleOrDefault(p => p.Name == Players[i].PlayerName);
if (online_player != null)
Players[i].Online = true;
else
Players[i].Online = false;
var online_player = online.FirstOrDefault(p => p.Name == Players[i].PlayerName);
Players[i].Online = online_player != null;
}
}
catch (SSQLServerException)
@ -74,13 +71,13 @@ namespace ArkData
{
var player = Players[i];
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++)
{
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();
}
}
@ -95,16 +92,21 @@ namespace ArkData
for (var i = 0; i < profiles.Count; i++)
{
var player = Players.Single(p => p.PlayerId == profiles[i].steamid);
player.PlayerName = profiles[i].personaname;
player.LastPlatformUpdateUtc = lastSteamUpdateUtc;
var player = Players.FirstOrDefault(p => p.PlayerId == profiles[i].steamid);
if (player != null)
{
player.PlayerName = profiles[i].personaname;
player.LastPlatformUpdateUtc = lastSteamUpdateUtc;
}
}
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)
{
player.NoUpdateCount = Math.Min(MAX_INVALID_COUNT, player.NoUpdateCount + 1);
}
}
}
}

View file

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