diff --git a/BunqSdk/Context/ApiContext.cs b/BunqSdk/Context/ApiContext.cs index adfbeb7..3d28eba 100644 --- a/BunqSdk/Context/ApiContext.cs +++ b/BunqSdk/Context/ApiContext.cs @@ -174,12 +174,14 @@ private void DeleteSession() /// /// Check if current time is too close to the saved session expiry time and reset session if needed. /// - public void EnsureSessionActive() + public bool EnsureSessionActive() { - if (!IsSessionActive()) - { - ResetSession(); - } + if (IsSessionActive()) return false; + + ResetSession(); + + return true; + } public bool IsSessionActive() @@ -196,7 +198,9 @@ public bool IsSessionActive() TIME_TO_SESSION_EXPIRY_MINIMUM_SECONDS ); - return timeToExpiry > timeToExpiryMinimum; + var comparison = timeToExpiry.CompareTo(timeToExpiryMinimum); + + return comparison <= 0; } /// diff --git a/BunqSdk/Http/ApiClient.cs b/BunqSdk/Http/ApiClient.cs index c723134..1c86140 100644 --- a/BunqSdk/Http/ApiClient.cs +++ b/BunqSdk/Http/ApiClient.cs @@ -151,9 +151,9 @@ private BunqResponseRaw SendRequest(HttpMethod method, string uriRelative, private BunqResponseRaw SendRequest(HttpRequestMessage requestMessage, IDictionary customHeaders, string uriRelative) { - if (!URIS_NOT_REQUIRING_ACTIVE_SESSION.Contains(uriRelative)) + if (!URIS_NOT_REQUIRING_ACTIVE_SESSION.Contains(uriRelative) && apiContext.EnsureSessionActive()) { - apiContext.EnsureSessionActive(); + BunqContext.UpdateApiContext(apiContext); } SetDefaultHeaders(requestMessage);