From 48d3e15f3986361e276e0c0c1c1fe7139f0982cb Mon Sep 17 00:00:00 2001 From: Jkorf Date: Wed, 5 Mar 2025 15:03:09 +0100 Subject: [PATCH] Added CallResult.SuccessResult as static object for use instead of new CallResult(null) --- CryptoExchange.Net/Clients/RestApiClient.cs | 2 +- CryptoExchange.Net/Clients/SocketApiClient.cs | 10 +++++----- .../SystemTextJson/SystemTextJsonMessageAccessor.cs | 4 ++-- CryptoExchange.Net/Objects/CallResult.cs | 7 ++++++- CryptoExchange.Net/RateLimiting/RateLimitGate.cs | 2 +- .../Sockets/CryptoExchangeWebSocketClient.cs | 2 +- CryptoExchange.Net/Sockets/Query.cs | 2 +- CryptoExchange.Net/Sockets/SocketConnection.cs | 8 ++++---- CryptoExchange.Net/Trackers/Klines/KlineTracker.cs | 2 +- CryptoExchange.Net/Trackers/Trades/TradeTracker.cs | 2 +- 10 files changed, 23 insertions(+), 18 deletions(-) diff --git a/CryptoExchange.Net/Clients/RestApiClient.cs b/CryptoExchange.Net/Clients/RestApiClient.cs index 5d61325..891ad3e 100644 --- a/CryptoExchange.Net/Clients/RestApiClient.cs +++ b/CryptoExchange.Net/Clients/RestApiClient.cs @@ -341,7 +341,7 @@ namespace CryptoExchange.Net.Clients } } - return new CallResult(null); + return CallResult.SuccessResult; } /// diff --git a/CryptoExchange.Net/Clients/SocketApiClient.cs b/CryptoExchange.Net/Clients/SocketApiClient.cs index af15b67..e249049 100644 --- a/CryptoExchange.Net/Clients/SocketApiClient.cs +++ b/CryptoExchange.Net/Clients/SocketApiClient.cs @@ -377,7 +377,7 @@ namespace CryptoExchange.Net.Clients protected virtual async Task ConnectIfNeededAsync(SocketConnection socket, bool authenticated) { if (socket.Connected) - return new CallResult(null); + return CallResult.SuccessResult; var connectResult = await ConnectSocketAsync(socket).ConfigureAwait(false); if (!connectResult) @@ -387,7 +387,7 @@ namespace CryptoExchange.Net.Clients await Task.Delay(ClientOptions.DelayAfterConnect).ConfigureAwait(false); if (!authenticated || socket.Authenticated) - return new CallResult(null); + return CallResult.SuccessResult; var result = await AuthenticateSocketAsync(socket).ConfigureAwait(false); if (!result) @@ -426,7 +426,7 @@ namespace CryptoExchange.Net.Clients } socket.Authenticated = true; - return new CallResult(null); + return CallResult.SuccessResult; } /// @@ -474,7 +474,7 @@ namespace CryptoExchange.Net.Clients /// protected internal virtual Task RevitalizeRequestAsync(Subscription subscription) { - return Task.FromResult(new CallResult(null)); + return Task.FromResult(CallResult.SuccessResult); } /// @@ -711,7 +711,7 @@ namespace CryptoExchange.Net.Clients return new CallResult(connectResult.Error!); } - return new CallResult(null); + return CallResult.SuccessResult; } /// diff --git a/CryptoExchange.Net/Converters/SystemTextJson/SystemTextJsonMessageAccessor.cs b/CryptoExchange.Net/Converters/SystemTextJson/SystemTextJsonMessageAccessor.cs index e270d3a..b0d45a9 100644 --- a/CryptoExchange.Net/Converters/SystemTextJson/SystemTextJsonMessageAccessor.cs +++ b/CryptoExchange.Net/Converters/SystemTextJson/SystemTextJsonMessageAccessor.cs @@ -276,7 +276,7 @@ namespace CryptoExchange.Net.Converters.SystemTextJson { _document = await JsonDocument.ParseAsync(_stream ?? stream).ConfigureAwait(false); IsJson = true; - return new CallResult(null); + return CallResult.SuccessResult; } catch (Exception ex) { @@ -339,7 +339,7 @@ namespace CryptoExchange.Net.Converters.SystemTextJson _document = JsonDocument.Parse(data); IsJson = true; - return new CallResult(null); + return CallResult.SuccessResult; } catch (Exception ex) { diff --git a/CryptoExchange.Net/Objects/CallResult.cs b/CryptoExchange.Net/Objects/CallResult.cs index 30703b1..3aed04a 100644 --- a/CryptoExchange.Net/Objects/CallResult.cs +++ b/CryptoExchange.Net/Objects/CallResult.cs @@ -13,6 +13,11 @@ namespace CryptoExchange.Net.Objects /// public class CallResult { + /// + /// Static success result + /// + public static CallResult SuccessResult { get; } = new CallResult(null); + /// /// An error if the call didn't succeed, will always be filled if Success = false /// @@ -149,7 +154,7 @@ namespace CryptoExchange.Net.Objects /// public CallResult AsDataless() { - return new CallResult(null); + return SuccessResult; } /// diff --git a/CryptoExchange.Net/RateLimiting/RateLimitGate.cs b/CryptoExchange.Net/RateLimiting/RateLimitGate.cs index 8eb089a..a536365 100644 --- a/CryptoExchange.Net/RateLimiting/RateLimitGate.cs +++ b/CryptoExchange.Net/RateLimiting/RateLimitGate.cs @@ -146,7 +146,7 @@ namespace CryptoExchange.Net.RateLimiting } } - return new CallResult(null); + return CallResult.SuccessResult; } /// diff --git a/CryptoExchange.Net/Sockets/CryptoExchangeWebSocketClient.cs b/CryptoExchange.Net/Sockets/CryptoExchangeWebSocketClient.cs index 37cd625..c904b50 100644 --- a/CryptoExchange.Net/Sockets/CryptoExchangeWebSocketClient.cs +++ b/CryptoExchange.Net/Sockets/CryptoExchangeWebSocketClient.cs @@ -263,7 +263,7 @@ namespace CryptoExchange.Net.Sockets } _logger.SocketConnected(Id, Uri); - return new CallResult(null); + return CallResult.SuccessResult; } /// diff --git a/CryptoExchange.Net/Sockets/Query.cs b/CryptoExchange.Net/Sockets/Query.cs index 397ae43..c024fb3 100644 --- a/CryptoExchange.Net/Sockets/Query.cs +++ b/CryptoExchange.Net/Sockets/Query.cs @@ -184,7 +184,7 @@ namespace CryptoExchange.Net.Sockets { var typedMessage = message.As((TServerResponse)message.Data); if (!ValidateMessage(typedMessage)) - return new CallResult(null); + return CallResult.SuccessResult; CurrentResponses++; if (CurrentResponses == RequiredResponses) diff --git a/CryptoExchange.Net/Sockets/SocketConnection.cs b/CryptoExchange.Net/Sockets/SocketConnection.cs index 8816486..63a13f3 100644 --- a/CryptoExchange.Net/Sockets/SocketConnection.cs +++ b/CryptoExchange.Net/Sockets/SocketConnection.cs @@ -856,7 +856,7 @@ namespace CryptoExchange.Net.Sockets if (!_socket.Send(requestId, data, weight)) return new CallResult(new WebError("Failed to send message, connection not open")); - return new CallResult(null); + return CallResult.SuccessResult; } catch(Exception ex) { @@ -879,7 +879,7 @@ namespace CryptoExchange.Net.Sockets // No need to resubscribe anything _logger.NothingToResubscribeCloseConnection(SocketId); _ = _socket.CloseAsync(); - return new CallResult(null); + return CallResult.SuccessResult; } } @@ -966,7 +966,7 @@ namespace CryptoExchange.Net.Sockets return new CallResult(new WebError("Socket not connected")); _logger.AllSubscriptionResubscribed(SocketId); - return new CallResult(null); + return CallResult.SuccessResult; } internal async Task UnsubscribeAsync(Subscription subscription) @@ -986,7 +986,7 @@ namespace CryptoExchange.Net.Sockets var subQuery = subscription.GetSubQuery(this); if (subQuery == null) - return new CallResult(null); + return CallResult.SuccessResult; var result = await SendAndWaitQueryAsync(subQuery).ConfigureAwait(false); subscription.HandleSubQueryResponse(subQuery.Response!); diff --git a/CryptoExchange.Net/Trackers/Klines/KlineTracker.cs b/CryptoExchange.Net/Trackers/Klines/KlineTracker.cs index c0cafd0..048f9e7 100644 --- a/CryptoExchange.Net/Trackers/Klines/KlineTracker.cs +++ b/CryptoExchange.Net/Trackers/Klines/KlineTracker.cs @@ -190,7 +190,7 @@ namespace CryptoExchange.Net.Trackers.Klines _updateSubscription.ConnectionRestored += HandleConnectionRestored; Status = SyncStatus.Synced; _logger.KlineTrackerStarted(SymbolName); - return new CallResult(null); + return CallResult.SuccessResult; } /// diff --git a/CryptoExchange.Net/Trackers/Trades/TradeTracker.cs b/CryptoExchange.Net/Trackers/Trades/TradeTracker.cs index de534c3..6665b93 100644 --- a/CryptoExchange.Net/Trackers/Trades/TradeTracker.cs +++ b/CryptoExchange.Net/Trackers/Trades/TradeTracker.cs @@ -213,7 +213,7 @@ namespace CryptoExchange.Net.Trackers.Trades _updateSubscription.ConnectionRestored += HandleConnectionRestored; SetSyncStatus(); _logger.TradeTrackerStarted(SymbolName); - return new CallResult(null); + return CallResult.SuccessResult; } ///