From 7a3f6ddef9cb5c28accbb647af168e2df37143ab Mon Sep 17 00:00:00 2001 From: JustArchi Date: Wed, 2 Jan 2019 18:24:25 +0100 Subject: [PATCH] Avoid serializing default properties in databases Less data to read/write is always better. --- ArchiSteamFarm/BotDatabase.cs | 10 ++++++++++ ArchiSteamFarm/GlobalDatabase.cs | 7 +++++++ ArchiSteamFarm/SteamKit2/InMemoryServerListProvider.cs | 2 ++ 3 files changed, 19 insertions(+) diff --git a/ArchiSteamFarm/BotDatabase.cs b/ArchiSteamFarm/BotDatabase.cs index 9b4695697..80a4b8359 100644 --- a/ArchiSteamFarm/BotDatabase.cs +++ b/ArchiSteamFarm/BotDatabase.cs @@ -340,5 +340,15 @@ namespace ArchiSteamFarm { FileSemaphore.Release(); } } + + // ReSharper disable UnusedMember.Global + public bool ShouldSerializeBlacklistedFromTradesSteamIDs() => BlacklistedFromTradesSteamIDs.Count > 0; + public bool ShouldSerializeGamesToRedeemInBackground() => HasGamesToRedeemInBackground; + public bool ShouldSerializeIdlingBlacklistedAppIDs() => IdlingBlacklistedAppIDs.Count > 0; + public bool ShouldSerializeIdlingPriorityAppIDs() => IdlingPriorityAppIDs.Count > 0; + public bool ShouldSerializeLoginKey() => !string.IsNullOrEmpty(LoginKey); + public bool ShouldSerializeMobileAuthenticator() => MobileAuthenticator != null; + + // ReSharper restore UnusedMember.Global } } diff --git a/ArchiSteamFarm/GlobalDatabase.cs b/ArchiSteamFarm/GlobalDatabase.cs index 28a41c221..da2319217 100644 --- a/ArchiSteamFarm/GlobalDatabase.cs +++ b/ArchiSteamFarm/GlobalDatabase.cs @@ -182,5 +182,12 @@ namespace ArchiSteamFarm { FileSemaphore.Release(); } } + + // ReSharper disable UnusedMember.Global + public bool ShouldSerializeCellID() => CellID != 0; + public bool ShouldSerializePackagesData() => PackagesData.Count > 0; + public bool ShouldSerializeServerListProvider() => ServerListProvider.ShouldSerializeServerRecords(); + + // ReSharper restore UnusedMember.Global } } diff --git a/ArchiSteamFarm/SteamKit2/InMemoryServerListProvider.cs b/ArchiSteamFarm/SteamKit2/InMemoryServerListProvider.cs index 4cf50312f..40a9d5c0c 100644 --- a/ArchiSteamFarm/SteamKit2/InMemoryServerListProvider.cs +++ b/ArchiSteamFarm/SteamKit2/InMemoryServerListProvider.cs @@ -52,6 +52,8 @@ namespace ArchiSteamFarm.SteamKit2 { return Task.CompletedTask; } + public bool ShouldSerializeServerRecords() => ServerRecords.Count > 0; + internal event EventHandler ServerListUpdated; } }