From feb3fbfe59c668be0f4311d8090715b1117204bd Mon Sep 17 00:00:00 2001 From: JustArchi Date: Sun, 10 Jul 2016 20:17:35 +0200 Subject: [PATCH] Get used to null propagation --- ArchiSteamFarm.sln.DotSettings | 1 + ArchiSteamFarm/ArchiWebHandler.cs | 21 +++------------ ArchiSteamFarm/Bot.cs | 36 ++++++++------------------ ArchiSteamFarm/CardsFarmer.cs | 4 +-- ArchiSteamFarm/ConcurrentEnumerator.cs | 6 +---- ArchiSteamFarm/ConcurrentHashSet.cs | 6 +---- ArchiSteamFarm/GlobalDatabase.cs | 9 +------ ArchiSteamFarm/MobileAuthenticator.cs | 5 +--- ArchiSteamFarm/Program.cs | 8 +++--- ArchiSteamFarm/WCF.cs | 9 ++----- ArchiSteamFarm/WebBrowser.cs | 2 +- 11 files changed, 28 insertions(+), 79 deletions(-) diff --git a/ArchiSteamFarm.sln.DotSettings b/ArchiSteamFarm.sln.DotSettings index 5a9b16887..541695d51 100644 --- a/ArchiSteamFarm.sln.DotSettings +++ b/ArchiSteamFarm.sln.DotSettings @@ -10,6 +10,7 @@ FS HTML ID + IP OK PIN SC diff --git a/ArchiSteamFarm/ArchiWebHandler.cs b/ArchiSteamFarm/ArchiWebHandler.cs index d5d99478a..fcf59f89f 100644 --- a/ArchiSteamFarm/ArchiWebHandler.cs +++ b/ArchiSteamFarm/ArchiWebHandler.cs @@ -377,11 +377,8 @@ namespace ArchiSteamFarm { string request = SteamCommunityURL + "/my/games/?xml=1"; XmlDocument response = await WebBrowser.UrlGetToXMLRetry(request).ConfigureAwait(false); - if (response == null) { - return null; - } - XmlNodeList xmlNodeList = response.SelectNodes("gamesList/games/game"); + XmlNodeList xmlNodeList = response?.SelectNodes("gamesList/games/game"); if ((xmlNodeList == null) || (xmlNodeList.Count == 0)) { return null; } @@ -492,11 +489,8 @@ namespace ArchiSteamFarm { string request = SteamCommunityURL + "/tradeoffer/" + tradeID + "?l=english"; HtmlDocument htmlDocument = await WebBrowser.UrlGetToHtmlDocumentRetry(request).ConfigureAwait(false); - if (htmlDocument == null) { - return null; - } - HtmlNode htmlNode = htmlDocument.DocumentNode.SelectSingleNode("//div[@class='pagecontent']/script"); + HtmlNode htmlNode = htmlDocument?.DocumentNode.SelectSingleNode("//div[@class='pagecontent']/script"); if (htmlNode == null) { // Trade can be no longer valid return null; } @@ -713,11 +707,8 @@ namespace ArchiSteamFarm { string request = SteamCommunityURL + "/my/inventory/json/" + Steam.Item.SteamAppID + "/" + Steam.Item.SteamContextID + "?trading=" + (tradable ? "1" : "0") + "&start=" + currentPage; JObject jObject = await WebBrowser.UrlGetToJObjectRetry(request).ConfigureAwait(false); - if (jObject == null) { - return null; - } - IEnumerable descriptions = jObject.SelectTokens("$.rgDescriptions.*"); + IEnumerable descriptions = jObject?.SelectTokens("$.rgDescriptions.*"); if (descriptions == null) { return null; // OK, empty inventory } @@ -913,11 +904,7 @@ namespace ArchiSteamFarm { string request = SteamCommunityURL + "/my/videos"; Uri uri = await WebBrowser.UrlHeadToUriRetry(request).ConfigureAwait(false); - if (uri == null) { - return null; - } - - return !uri.AbsolutePath.StartsWith("/login", StringComparison.Ordinal); + return !uri?.AbsolutePath.StartsWith("/login", StringComparison.Ordinal); } private async Task RefreshSessionIfNeeded() { diff --git a/ArchiSteamFarm/Bot.cs b/ArchiSteamFarm/Bot.cs index b37149e8a..d7f2244c3 100755 --- a/ArchiSteamFarm/Bot.cs +++ b/ArchiSteamFarm/Bot.cs @@ -252,25 +252,11 @@ namespace ArchiSteamFarm { LoginSemaphore.Dispose(); HandledGifts.Dispose(); - if (AcceptConfirmationsTimer != null) { - AcceptConfirmationsTimer.Dispose(); - } - - if (ArchiWebHandler != null) { - ArchiWebHandler.Dispose(); - } - - if (CardsFarmer != null) { - CardsFarmer.Dispose(); - } - - if (SendItemsTimer != null) { - SendItemsTimer.Dispose(); - } - - if (Trading != null) { - Trading.Dispose(); - } + AcceptConfirmationsTimer?.Dispose(); + ArchiWebHandler?.Dispose(); + CardsFarmer?.Dispose(); + SendItemsTimer?.Dispose(); + Trading?.Dispose(); } internal async Task AcceptConfirmations(bool accept, Steam.ConfirmationDetails.EType acceptedType = Steam.ConfirmationDetails.EType.Unknown, ulong acceptedSteamID = 0, HashSet acceptedTradeIDs = null) { @@ -333,7 +319,7 @@ namespace ArchiSteamFarm { return false; } - if ((callback == null) || string.IsNullOrEmpty(callback.Nonce)) { + if (string.IsNullOrEmpty(callback?.Nonce)) { Start().Forget(); return false; } @@ -1609,7 +1595,7 @@ namespace ArchiSteamFarm { } private async void OnGuestPassList(SteamApps.GuestPassListCallback callback) { - if ((callback == null) || (callback.GuestPasses == null)) { + if (callback?.GuestPasses == null) { Logging.LogNullError(nameof(callback) + " || " + nameof(callback.GuestPasses), BotName); return; } @@ -1647,7 +1633,7 @@ namespace ArchiSteamFarm { } private void OnChatInvite(SteamFriends.ChatInviteCallback callback) { - if ((callback == null) || (callback.ChatRoomID == null) || (callback.PatronID == null)) { + if ((callback?.ChatRoomID == null) || (callback.PatronID == null)) { Logging.LogNullError(nameof(callback) + " || " + nameof(callback.ChatRoomID) + " || " + nameof(callback.PatronID), BotName); return; } @@ -1689,7 +1675,7 @@ namespace ArchiSteamFarm { } private void OnFriendsList(SteamFriends.FriendsListCallback callback) { - if ((callback == null) || (callback.FriendList == null)) { + if (callback?.FriendList == null) { Logging.LogNullError(nameof(callback) + " || " + nameof(callback.FriendList), BotName); return; } @@ -1722,7 +1708,7 @@ namespace ArchiSteamFarm { } private async void OnFriendMsgHistory(SteamFriends.FriendMsgHistoryCallback callback) { - if ((callback == null) || (callback.Messages == null) || (callback.SteamID == null)) { + if ((callback?.Messages == null) || (callback.SteamID == null)) { Logging.LogNullError(nameof(callback) + " || " + nameof(callback.Messages) + " || " + nameof(callback.SteamID), BotName); return; } @@ -1865,7 +1851,7 @@ namespace ArchiSteamFarm { } private void OnLoginKey(SteamUser.LoginKeyCallback callback) { - if ((callback == null) || string.IsNullOrEmpty(callback.LoginKey)) { + if (string.IsNullOrEmpty(callback?.LoginKey)) { Logging.LogNullError(nameof(callback) + " || " + nameof(callback.LoginKey), BotName); return; } diff --git a/ArchiSteamFarm/CardsFarmer.cs b/ArchiSteamFarm/CardsFarmer.cs index 4cacedffb..88d8f69ff 100755 --- a/ArchiSteamFarm/CardsFarmer.cs +++ b/ArchiSteamFarm/CardsFarmer.cs @@ -75,9 +75,7 @@ namespace ArchiSteamFarm { FarmResetEvent.Dispose(); FarmingSemaphore.Dispose(); - if (Timer != null) { - Timer.Dispose(); - } + Timer?.Dispose(); } internal async Task SwitchToManualMode(bool manualMode) { diff --git a/ArchiSteamFarm/ConcurrentEnumerator.cs b/ArchiSteamFarm/ConcurrentEnumerator.cs index c091917ed..a9e0268bc 100644 --- a/ArchiSteamFarm/ConcurrentEnumerator.cs +++ b/ArchiSteamFarm/ConcurrentEnumerator.cs @@ -50,10 +50,6 @@ namespace ArchiSteamFarm { public bool MoveNext() => Enumerator.MoveNext(); public void Reset() => Enumerator.Reset(); - public void Dispose() { - if (Lock != null) { - Lock.ExitReadLock(); - } - } + public void Dispose() => Lock?.ExitReadLock(); } } diff --git a/ArchiSteamFarm/ConcurrentHashSet.cs b/ArchiSteamFarm/ConcurrentHashSet.cs index fc3d54c91..b93fc3774 100644 --- a/ArchiSteamFarm/ConcurrentHashSet.cs +++ b/ArchiSteamFarm/ConcurrentHashSet.cs @@ -100,11 +100,7 @@ namespace ArchiSteamFarm { } } - public void Dispose() { - if (Lock != null) { - Lock.Dispose(); - } - } + public void Dispose() => Lock?.Dispose(); public void CopyTo(T[] array, int arrayIndex) { Lock.EnterReadLock(); diff --git a/ArchiSteamFarm/GlobalDatabase.cs b/ArchiSteamFarm/GlobalDatabase.cs index 55a59141c..77f5b6189 100644 --- a/ArchiSteamFarm/GlobalDatabase.cs +++ b/ArchiSteamFarm/GlobalDatabase.cs @@ -91,14 +91,7 @@ namespace ArchiSteamFarm { return globalDatabase; } - private void OnServerListUpdated(object sender, EventArgs e) { - if ((sender == null) || (e == null)) { - Logging.LogNullError(nameof(sender) + " || " + nameof(e)); - return; - } - - Save(); - } + private void OnServerListUpdated(object sender, EventArgs e) => Save(); // This constructor is used when creating new database private GlobalDatabase(string filePath) : this() { diff --git a/ArchiSteamFarm/MobileAuthenticator.cs b/ArchiSteamFarm/MobileAuthenticator.cs index dce937e66..fd3f626f0 100644 --- a/ArchiSteamFarm/MobileAuthenticator.cs +++ b/ArchiSteamFarm/MobileAuthenticator.cs @@ -173,11 +173,8 @@ namespace ArchiSteamFarm { } HtmlDocument htmlDocument = await Bot.ArchiWebHandler.GetConfirmations(DeviceID, confirmationHash, time).ConfigureAwait(false); - if (htmlDocument == null) { - return null; - } - HtmlNodeCollection confirmationNodes = htmlDocument.DocumentNode.SelectNodes("//div[@class='mobileconf_list_entry']"); + HtmlNodeCollection confirmationNodes = htmlDocument?.DocumentNode.SelectNodes("//div[@class='mobileconf_list_entry']"); if (confirmationNodes == null) { return null; } diff --git a/ArchiSteamFarm/Program.cs b/ArchiSteamFarm/Program.cs index cbe766f3d..2aa03554b 100644 --- a/ArchiSteamFarm/Program.cs +++ b/ArchiSteamFarm/Program.cs @@ -437,8 +437,8 @@ namespace ArchiSteamFarm { } private static void UnhandledExceptionHandler(object sender, UnhandledExceptionEventArgs args) { - if ((sender == null) || (args == null) || (args.ExceptionObject == null)) { - Logging.LogNullError(nameof(sender) + " || " + nameof(args) + " || " + nameof(args.ExceptionObject)); + if (args?.ExceptionObject == null) { + Logging.LogNullError(nameof(args) + " || " + nameof(args.ExceptionObject)); return; } @@ -446,8 +446,8 @@ namespace ArchiSteamFarm { } private static void UnobservedTaskExceptionHandler(object sender, UnobservedTaskExceptionEventArgs args) { - if ((sender == null) || (args == null) || (args.Exception == null)) { - Logging.LogNullError(nameof(sender) + " || " + nameof(args) + " || " + nameof(args.Exception)); + if (args?.Exception == null) { + Logging.LogNullError(nameof(args) + " || " + nameof(args.Exception)); return; } diff --git a/ArchiSteamFarm/WCF.cs b/ArchiSteamFarm/WCF.cs index b20d2b078..65974f808 100644 --- a/ArchiSteamFarm/WCF.cs +++ b/ArchiSteamFarm/WCF.cs @@ -75,13 +75,8 @@ namespace ArchiSteamFarm { } public void Dispose() { - if (ServiceHost != null) { - ServiceHost.Close(); - } - - if (Client != null) { - Client.Close(); - } + ServiceHost?.Close(); + Client?.Close(); } internal bool IsServerRunning() => ServiceHost != null; diff --git a/ArchiSteamFarm/WebBrowser.cs b/ArchiSteamFarm/WebBrowser.cs index 0fbc73ec6..4bb5d814b 100644 --- a/ArchiSteamFarm/WebBrowser.cs +++ b/ArchiSteamFarm/WebBrowser.cs @@ -365,7 +365,7 @@ namespace ArchiSteamFarm { } using (HttpResponseMessage response = await UrlHeadToResponse(request, referer).ConfigureAwait(false)) { - return response == null ? null : response.RequestMessage.RequestUri; + return response?.RequestMessage.RequestUri; } }