Removal of ToArray()

This commit is contained in:
Brett Hewitson 2021-12-16 00:21:23 +10:00
parent 9eb22da9e7
commit 9f5cf132f0
41 changed files with 184 additions and 189 deletions

View file

@ -17,15 +17,13 @@ namespace ServerManagerTool.Lib
public override void FromIniValues(IEnumerable<string> iniValues)
{
var items = iniValues?.Select(AggregateIniValue.FromINIValue<EngramAutoUnlock>).ToArray();
var items = iniValues?.Select(AggregateIniValue.FromINIValue<EngramAutoUnlock>);
Clear();
var itemsToAdd = items.Where(i => !this.Any(e => e.IsEquivalent(i))).ToArray();
AddRange(itemsToAdd);
AddRange(items.Where(i => !this.Any(e => e.IsEquivalent(i))));
var itemsToUpdate = items.Where(i => this.Any(e => e.IsEquivalent(i))).ToArray();
foreach (var item in itemsToUpdate)
foreach (var item in items.Where(i => this.Any(e => e.IsEquivalent(i))))
{
var e = this.FirstOrDefault(r => r.IsEquivalent(item));
e.LevelToAutoUnlock = item.LevelToAutoUnlock;

View file

@ -18,15 +18,13 @@ namespace ServerManagerTool.Lib
public override void FromIniValues(IEnumerable<string> iniValues)
{
var items = iniValues?.Select(AggregateIniValue.FromINIValue<EngramEntry>).ToArray();
var items = iniValues?.Select(AggregateIniValue.FromINIValue<EngramEntry>);
Clear();
var itemsToAdd = items.Where(i => !this.Any(e => e.IsEquivalent(i))).ToArray();
AddRange(itemsToAdd);
AddRange(items.Where(i => !this.Any(e => e.IsEquivalent(i))));
var itemsToUpdate = items.Where(i => this.Any(e => e.IsEquivalent(i))).ToArray();
foreach (var item in itemsToUpdate)
foreach (var item in items.Where(i => this.Any(e => e.IsEquivalent(i))))
{
var e = this.FirstOrDefault(r => r.IsEquivalent(item));
e.EngramLevelRequirement = item.EngramLevelRequirement;

View file

@ -61,7 +61,7 @@ namespace ServerManagerTool.Lib
int index = 0;
int xpTotal = 0;
int engramTotal = 0;
foreach (var existingLevel in this.OrderBy(l => l.XPRequired).ToArray())
foreach (var existingLevel in this.OrderBy(l => l.XPRequired))
{
xpTotal += existingLevel.XPRequired;
engramTotal += existingLevel.EngramPoints;

View file

@ -14,11 +14,9 @@ namespace ServerManagerTool.Lib
{
}
public string[] RenderToView()
public IEnumerable<string> RenderToView()
{
List<string> errors = new List<string>();
return errors.ToArray();
return new List<string>();
}
public void RenderToModel()

View file

@ -1,5 +1,4 @@
using ServerManagerTool.Common.Model;
using ServerManagerTool.Enums;
using System;
using System.Collections.Generic;
using System.Linq;
@ -18,22 +17,20 @@ namespace ServerManagerTool.Lib
public override void FromIniValues(IEnumerable<string> iniValues)
{
var items = iniValues?.Select(AggregateIniValue.FromINIValue<ResourceClassMultiplier>).ToArray();
var items = iniValues?.Select(AggregateIniValue.FromINIValue<ResourceClassMultiplier>);
Clear();
if (this._resetFunc != null)
this.AddRange(this._resetFunc());
var itemsToAdd = items.Where(i => !this.Any(r => r.IsEquivalent(i))).ToArray();
AddRange(itemsToAdd);
AddRange(items.Where(i => !this.Any(r => r.IsEquivalent(i))));
var itemsToUpdate = items.Where(i => this.Any(r => r.IsEquivalent(i))).ToArray();
foreach (var item in itemsToUpdate)
foreach (var item in items.Where(i => this.Any(r => r.IsEquivalent(i))))
{
this.FirstOrDefault(r => r.IsEquivalent(item)).Multiplier = item.Multiplier;
}
IsEnabled = (items.Length > 0);
IsEnabled = (Count > 0);
Sort(AggregateIniValue.SortKeySelector);
}

View file

@ -14,7 +14,7 @@ namespace ServerManagerTool.Lib
{
}
public string[] RenderToView()
public IEnumerable<string> RenderToView()
{
List<string> errors = new List<string>();
@ -27,7 +27,7 @@ namespace ServerManagerTool.Lib
}
}
return errors.ToArray();
return errors;
}
public void RenderToModel()

View file

@ -17,7 +17,7 @@ namespace ServerManagerTool.Lib
{
}
public string[] RenderToView()
public IEnumerable<string> RenderToView()
{
List<string> errors = new List<string>();
@ -48,7 +48,7 @@ namespace ServerManagerTool.Lib
Update();
return errors.ToArray();
return errors;
}
public void RenderToModel()

View file

@ -1875,7 +1875,7 @@ namespace ServerManagerTool.Lib
comment.AppendLine($"PGM Server: {_profile.PGM_Enabled}");
comment.AppendLine($"Process: {ServerProcess}");
ZipUtils.ZipFiles(backupFile, files.ToArray(), comment.ToString(), false);
ZipUtils.ZipFiles(backupFile, files, comment.ToString(), false);
LogProfileMessage($"Backup file created - {backupFile}");
}
@ -2025,7 +2025,7 @@ namespace ServerManagerTool.Lib
comment.AppendLine($"PGM Server: {_profile.PGM_Enabled}");
comment.AppendLine($"Process: {ServerProcess}");
ZipUtils.ZipFiles(backupFile, files.ToArray(), comment.ToString(), false);
ZipUtils.ZipFiles(backupFile, files, comment.ToString(), false);
LogProfileMessage($"Backed up world files - {saveFolder}");
LogProfileMessage($"Backup file created - {backupFile}");
@ -2998,7 +2998,7 @@ namespace ServerManagerTool.Lib
if (ExitCode == EXITCODE_NORMALEXIT)
{
// get the profile associated with the branch
var profiles = _profiles.Keys.Where(p => p.EnableAutoUpdate && p.BranchName.Equals(branch.BranchName, StringComparison.OrdinalIgnoreCase)).ToArray();
var profiles = _profiles.Keys.Where(p => p.EnableAutoUpdate && p.BranchName.Equals(branch.BranchName, StringComparison.OrdinalIgnoreCase));
var profileExitCodes = new ConcurrentDictionary<ServerProfileSnapshot, int>();
if (Config.Default.AutoUpdate_ParallelUpdate)
@ -3249,7 +3249,7 @@ namespace ServerManagerTool.Lib
if (exitCode == EXITCODE_NORMALEXIT)
{
var branches = _profiles.Keys.Where(p => p.EnableAutoUpdate).Select(p => BranchSnapshot.Create(p)).Distinct(new BranchSnapshotComparer()).ToArray();
var branches = _profiles.Keys.Where(p => p.EnableAutoUpdate).Select(p => BranchSnapshot.Create(p)).Distinct(new BranchSnapshotComparer());
var exitCodes = new ConcurrentDictionary<BranchSnapshot, int>();
// update the server cache for each branch

View file

@ -223,7 +223,7 @@ namespace ServerManagerTool.Lib
token.ThrowIfCancellationRequested();
// remove any players that do not have a player file.
var droppedPlayers = _players.Values.Where(p => dataContainer.Players.FirstOrDefault(pd => pd.PlayerId.Equals(p.PlayerId, StringComparison.OrdinalIgnoreCase)) == null).ToArray();
var droppedPlayers = _players.Values.Where(p => dataContainer.Players.FirstOrDefault(pd => pd.PlayerId.Equals(p.PlayerId, StringComparison.OrdinalIgnoreCase)) == null);
foreach (var droppedPlayer in droppedPlayers)
{
_players.TryRemove(droppedPlayer.PlayerId, out PlayerInfo player);

View file

@ -3593,7 +3593,7 @@ namespace ServerManagerTool.Lib
}
}
private static Enum[] GetExclusions()
private static IEnumerable<Enum> GetExclusions()
{
var exclusions = new List<Enum>();
@ -3637,7 +3637,7 @@ namespace ServerManagerTool.Lib
exclusions.Add(ServerProfileCategory.SOTF);
}
return exclusions.ToArray();
return exclusions;
}
private LevelList GetLevelList(LevelProgression levelProgression)
@ -4022,7 +4022,7 @@ namespace ServerManagerTool.Lib
return profile;
}
public static ServerProfile LoadFromINIFiles(string file, ServerProfile profile, Enum[] exclusions = null)
public static ServerProfile LoadFromINIFiles(string file, ServerProfile profile, IEnumerable<Enum> exclusions = null)
{
if (string.IsNullOrWhiteSpace(file) || !File.Exists(file))
return null;
@ -4394,7 +4394,7 @@ namespace ServerManagerTool.Lib
SaveINIFile(configDir);
}
public void SaveINIFile(string profileIniDir, Enum[] exclusions = null)
public void SaveINIFile(string profileIniDir, IEnumerable<Enum> exclusions = null)
{
if (exclusions == null)
exclusions = GetExclusions();
@ -4418,7 +4418,7 @@ namespace ServerManagerTool.Lib
filteredValues.AddRange(this.PlayerLevels.ToINIValuesForEngramPoints());
}
iniFile.WriteSection(IniFiles.Game, IniSections.Game_ShooterGameMode, filteredValues.ToArray());
iniFile.WriteSection(IniFiles.Game, IniSections.Game_ShooterGameMode, filteredValues);
}
public bool UpdateDirectoryPermissions()
@ -5860,7 +5860,7 @@ namespace ServerManagerTool.Lib
this.CustomEngineSettings.Clear();
foreach (var section in sourceProfile.CustomEngineSettings)
{
this.CustomEngineSettings.Add(section.SectionName, section.ToIniValues().ToArray());
this.CustomEngineSettings.Add(section.SectionName, section.ToIniValues());
}
}
@ -5869,7 +5869,7 @@ namespace ServerManagerTool.Lib
this.CustomGameSettings.Clear();
foreach (var section in sourceProfile.CustomGameSettings)
{
this.CustomGameSettings.Add(section.SectionName, section.ToIniValues().ToArray());
this.CustomGameSettings.Add(section.SectionName, section.ToIniValues());
}
}
@ -5878,7 +5878,7 @@ namespace ServerManagerTool.Lib
this.CustomGameUserSettings.Clear();
foreach (var section in sourceProfile.CustomGameUserSettings)
{
this.CustomGameUserSettings.Add(section.SectionName, section.ToIniValues().ToArray());
this.CustomGameUserSettings.Add(section.SectionName, section.ToIniValues());
}
}
@ -6530,7 +6530,7 @@ namespace ServerManagerTool.Lib
Directory.CreateDirectory(folder);
var file = Path.Combine(folder, Config.Default.ArkAdminFile);
File.WriteAllLines(file, this.ServerFilesAdmins.ToArray());
File.WriteAllLines(file, this.ServerFilesAdmins.ToEnumerable());
}
catch (Exception ex)
{
@ -6547,7 +6547,7 @@ namespace ServerManagerTool.Lib
Directory.CreateDirectory(folder);
var file = Path.Combine(folder, Config.Default.ArkExclusiveFile);
File.WriteAllLines(file, this.ServerFilesExclusive.ToArray());
File.WriteAllLines(file, this.ServerFilesExclusive.ToEnumerable());
}
catch (Exception ex)
{
@ -6564,7 +6564,7 @@ namespace ServerManagerTool.Lib
Directory.CreateDirectory(folder);
var file = Path.Combine(folder, Config.Default.ArkWhitelistFile);
File.WriteAllLines(file, this.ServerFilesWhitelisted.ToArray());
File.WriteAllLines(file, this.ServerFilesWhitelisted.ToEnumerable());
}
catch (Exception ex)
{

View file

@ -325,8 +325,8 @@ namespace ServerManagerTool.Lib
else if (command.command.Equals(RCON_COMMAND_GETCHAT, StringComparison.OrdinalIgnoreCase))
{
// TODO: Extract the player name from the chat
var lines = command.lines.Where(l => !String.IsNullOrEmpty(l) && l != NoResponseOutput).ToArray();
if (lines.Length == 0 && command.suppressCommand)
var lines = command.lines.Where(l => !String.IsNullOrEmpty(l) && l != NoResponseOutput);
if (!lines.Any() && command.suppressCommand)
{
command.suppressOutput = true;
}
@ -398,7 +398,7 @@ namespace ServerManagerTool.Lib
}
}
var droppedPlayers = this.players.Values.Where(p => onlinePlayers.FirstOrDefault(np => np.PlayerId.Equals(p.PlayerId, StringComparison.OrdinalIgnoreCase)) == null).ToArray();
var droppedPlayers = this.players.Values.Where(p => onlinePlayers.FirstOrDefault(np => np.PlayerId.Equals(p.PlayerId, StringComparison.OrdinalIgnoreCase)) == null);
foreach (var droppedPlayer in droppedPlayers)
{
if (droppedPlayer.IsOnline)
@ -604,7 +604,7 @@ namespace ServerManagerTool.Lib
token.ThrowIfCancellationRequested();
// remove any players that do not have a player file.
var droppedPlayers = this.players.Values.Where(p => dataContainer.Players.FirstOrDefault(pd => pd.PlayerId.Equals(p.PlayerId, StringComparison.OrdinalIgnoreCase)) == null).ToArray();
var droppedPlayers = this.players.Values.Where(p => dataContainer.Players.FirstOrDefault(pd => pd.PlayerId.Equals(p.PlayerId, StringComparison.OrdinalIgnoreCase)) == null);
foreach (var droppedPlayer in droppedPlayers)
{
players.TryRemove(droppedPlayer.PlayerId, out PlayerInfo player);

View file

@ -80,14 +80,13 @@ namespace ServerManagerTool.Lib.ViewModel
if (string.IsNullOrWhiteSpace(entry.EngramClassName))
continue;
var engramSettings = this.Where(vi => vi.EngramClassName == entry.EngramClassName).ToArray();
if (engramSettings == null || engramSettings.Length == 0)
if (!this.Any(vi => vi.EngramClassName == entry.EngramClassName))
{
var engram = GameData.GetEngramForClass(entry.EngramClassName);
this.Add(CreateEngramSetting(entry.EngramClassName, engram?.Mod ?? GameData.MOD_UNKNOWN, engram?.KnownEngram ?? false, engram?.IsTekgram ?? false));
}
engramSettings = this.Where(vi => vi.EngramClassName == entry.EngramClassName).ToArray();
var engramSettings = this.Where(vi => vi.EngramClassName == entry.EngramClassName);
foreach (var engramSetting in engramSettings)
{
engramSetting.EngramLevelRequirement = entry.EngramLevelRequirement;
@ -117,14 +116,13 @@ namespace ServerManagerTool.Lib.ViewModel
if (string.IsNullOrWhiteSpace(entry.EngramClassName))
continue;
var engramSettings = this.Where(vi => vi.EngramClassName == entry.EngramClassName).ToArray();
if (engramSettings == null || engramSettings.Length == 0)
if (!this.Any(vi => vi.EngramClassName == entry.EngramClassName))
{
var engram = GameData.GetEngramForClass(entry.EngramClassName);
this.Add(CreateEngramSetting(entry.EngramClassName, engram?.Mod ?? GameData.MOD_UNKNOWN, engram?.KnownEngram ?? false, engram?.IsTekgram ?? false));
}
engramSettings = this.Where(vi => vi.EngramClassName == entry.EngramClassName).ToArray();
var engramSettings = this.Where(vi => vi.EngramClassName == entry.EngramClassName);
foreach (var engramSetting in engramSettings)
{
engramSetting.EngramAutoUnlock = true;