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);